我正在做一个程序,可以计算两个或更多单词的点数。如何获取数组中列表中每个点的值?我已经有一本点词典了。你知道吗
points_dictionary = {
'A': 1, 'B': 3, 'C': 3,
'D': 2, 'E': 1, 'F': 4, 'G': 2,
'H': 4, 'I': 1, 'J': 8, 'K': 5,
'L': 1, 'M': 3, 'N': 1, 'O': 1,
'P': 3, 'Q': 10, 'R': 1, 'S': 1,
'T': 1, 'U': 1, 'V': 4, 'W': 4, 'X': 8,
'Y': 4, 'Z': 10, '#': 0, '0':3
}
我有一个这样的列表currwords = ['PEARS' 'MANGO' 'ORANGE]
我已经做了一个代码,可以得到每个字母的点,但它的输出增加了所有的点。你知道吗
for you in currwords:
for yeah in you:
trans = list(yeah)
trans = points_dictionary[yeah[0]]
total_words.append(trans)
final1 = sum(total_words)
print(final1)
每次我使用这个代码时,它只输出列表上的总分。我如何在每个单词上得到特别的分数,比如PEAR=6 MANGO=8和ORANGE=7
我认为这里的问题是,您在每次迭代时将trans附加到total\单词,但从不重置其值。你可以加一个
在第一圈里面。另外,在
for yeah in you
循环中,定义trans两次,因此第一次永远不用。更正后,代码应如下所示:可以将sum与map一起使用:
输出
作为替代,您可以使用generator expression:
map和生成器表达式的思想都是将每个单词的字母映射到对应的点值。你知道吗
让我们用传统的方式来做:
输出:
输出:
相关问题 更多 >
编程相关推荐