【发布时间】:2019-07-15 05:42:57
【问题描述】:
如果该字母在给定的字典中(作为键),我会写什么来迭代字符串和每个字母,然后将该键的值添加到空列表中?
例如字符串“cat”,我想在给定的字典中搜索 c、a 和 t。然后对于每个字母的每个值,将它们添加到一个新列表中,该列表是点(值)的总和。
我不断收到:TypeError: 'NoneType' object is not iterable
这是我目前所拥有的:
user_word = cat
values_dict = {'A' : 1, 'E' : 1, 'I' : 1, 'O' : 1, 'U' : 1, 'L' : 1,\
'N' : 1, 'N' : 1, 'S' : 1, 'T' : 1, 'R' : 1,\
'D' : 2, 'G' : 2, 'B' : 3, 'C' : 3, 'M' : 3, 'P' : 3,\
'F' : 4, 'H' : 4, 'V' : 4, 'W' : 4, 'Y' : 4,\
'K' : 5, 'J' : 8, 'X' : 8, 'Q' : 10, 'Z' : 10,}
def get_word_value(user_word, values_dict):
word_pts = 0
for letter in user_word.upper():
for key, value in values_dict.items:
for letter in range(value):
word_pts = word_pts + values_dict[letter]
print(word_pts, 'TEST GOOD')
return word_pts
# expected result is 5 (3+1+1= 5)
【问题讨论】:
-
首先,您需要使用
for key, value in values_dict.items()- 所以values_dict.items()必须作为方法调用。然后,for letter in range(value)我猜是不正确的,因为value是标量(它是字典中的值,您可以对其进行迭代)...
标签: python string loops dictionary key-value