我有一本字典和一个列表,其中包含单独单词的子列表:
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)
答案 0 :(得分:2)
不要将变量名用作list
或dict
,而是要掩盖内置函数。而且,您不必在每次迭代中将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]