如何为每个子列表分配分数?

时间:2020-01-21 11:26:12

标签: python dictionary sublist

我有一本字典和一个列表,其中包含单独单词的子列表:

lst=[["love", "apple", "@"],["user", "hit", "hate"]]

dict{"love":3, "hate":-3}

我需要遍历子列表并评估子列表中词典中是否存在单词,并为每个子列表分配一个值。理想的结果是: 3 -3

我尝试了下面的代码,但是它给了我子列表中每个单词的分数。我的错误在哪里?

def evaluation(list, dict):
    score=0
    for i in dict.keys():
        for sublst in list:
            if i in sublst:
                score+=dict.get(i)
            print(score)

1 个答案:

答案 0 :(得分:2)

不要将变量名用作listdict,而是要掩盖内置函数。而且,您不必在每次迭代中将score的值重置为0

您可以这样做:

lst=[["love", "apple", "@"],["user", "hit", "hate"]]
d = {"love":3, "hate":-3}

score = [sum(d.get(val.lower(), 0) for val in sublst) for sublst in lst]

print(score)

要打印:

[3, -3]