检索字典中变量值的关键错误

时间:2017-02-20 09:43:02

标签: python dictionary

VOWELS = 'aeiou'
CONSONANTS = 'bcdfghjklmnpqrstvwxyz'
HAND_SIZE = 7

SCRABBLE_LETTER_VALUES = {
    '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
}
word = 'hi'
SCRABBLE_LETTER_VALUES.get(word)

我应该得到h + I的值,但它会一直返回NONE或键错误

2 个答案:

答案 0 :(得分:2)

你试图通过检查单词" hi"来解决它。在字典里。但你需要做的是代替SCRABBLE_LETTER_VALUES.get(word),你需要去:

points = 0    
for character in word:
    points += SCRABBLE_LETTER_VALUES.get(character)

基本上,这不是通过变量字中的每个字母,并计算出它的值,并将该数字添加到变量点。您可以使用上面的代码替换SCRABBLE_LETTER_VALUES.get(word)。它应该工作。

您还可以使用列表理解。我的意思是:

points = sum([SCRABBLE_LETTER_VALUES[char] for char in word])

这将遍历单词中的每个字符,计算出它的点并列出所有字符的所有点。然后它会将列表中的所有数字相加,得出总分数。这更复杂,但看起来更简单,更紧凑。

我希望这会有所帮助。

答案 1 :(得分:1)

答案(使用list comprehension):

word_value = sum(SCRABBLE_LETTER_VALUES[x] for x in word)
print(word_value)