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

How to assign a score to each 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)

不要将变量名用作 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]