我如何获得每个单词的分数?

我正在制作一个可以计算两个或多个单词点数的程序。如何获取数组中列表中每个点的值?我已经有一个点字典。


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


慕哥6287543
浏览 197回答 3
3回答

烙印99

您可以将sum与map一起使用: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 word in currwords:    print(word, sum(map(lambda c: points_dictionary.get(c, 0), word)))输出PEARS 7MANGO 8ORANGE 7作为替代方案,您可以使用生成器表达式:for word in currwords:    print(word, sum(points_dictionary.get(c, 0) for c in word))map 和生成器表达式的思想都是将每个单词的字母映射到相应的点值。

慕神8447489

让我们用老派的方式来做: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']sumsOfwords = []sum = 0i = -1for words in currwords:    for word in words:        if words == currwords[i + 1]:            sum = sum + points_dictionary[word]        else:            sumsOfwords.append(sum)            sum = 0            sum = sum + points_dictionary[word]            i = i + 1sumsOfwords.append(sum)print(sumsOfwords)输出:[7, 8, 7]dictionary = dict(zip(currwords, sumsOfwords))print(dictionary)输出:{'梨':7,'芒果':8,'橙色':7}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python