首页 > 解决方案 > 如何遍历字符串并为每个字母,如果它在字典(键)中,将值添加到新列表中?

问题描述

如果该字母在给定的字典中(作为键),我会写什么来迭代字符串和每个字母,然后将该键的值添加到空列表中?

例如字符串“cat”,我想在给定的字典中搜索 c、a 和 t。然后对于每个字母的每个值,将它们添加到一个新列表中,该列表是点(值)的总和。

我不断收到:TypeError:'NoneType' 对象不可迭代

这是我到目前为止所拥有的:

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)

标签: pythonstringloopsdictionarykey-value

解决方案


这是一个衬里:

sum([values_dict[letter] for letter in user_word.upper()])


推荐阅读