2016-06-28 3 views
0

У меня есть словарь, который связывает целое число каждого символа в алфавите примерно так:Добавить значение Dict к переменной

letter_values = {'a': 1, 'b': 3, 'c': 3} и так далее

Моя программа запрашивает у пользователя для входа, перебирает над каждым символом строки и добавляет значение Уважая из словаря переменной называется оценка, например, так:

word = raw_input('Please enter your word: ') 
score = 0 
if len(word) == 0: 
    return score 
else: 
    for letter in word: 
     for letter in SCRABBLE_LETTER_VALUES.keys(): 
      char_value = SCRABBLE_LETTER_VALUES.values() 
      score += char_value 

для строки, в которой я присвоить значение переменной CHAR_VALUE, я получаю следующее сообщение об ошибке:

Под этим я предполагаю, что Python не признает, что значение в dict является целым числом (?) Если да, то как я могу добавить целые числа dict к переменной?

+1

Вы пытаетесь добавить все '.values ​​()', который является списком * всех значений *, в целое число ... Кроме того, итерация по этому словарю делает абсолютно не имеет смысла. Разве вы просто не хотите 'SCRABBLE_LETTER_VALUES [letter]'? – jonrsharpe

+1

Вы правы с этим, на данный момент код не очень хорош. Моя проблема решена сейчас, поэтому я хочу ее улучшить! – Brian

ответ

3

values() возвращает список, а не конкретное значение. Однако значения словаря могут быть доступны квадратными скобками. Попытайтесь:

for letter in word: 
    score += letter_values[letter] 
+1

Yep, Или 'letter_values.get (letter, 0)', если OP не уверен, что элемент присутствует в словаре. [Почему dict.get (ключ) вместо dict \ [key \]?] (Http://stackoverflow.com/q/11041405) –

Смежные вопросы