如何为每个子列表分配分数?
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)
不要将变量名用作 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]
我有一本字典和一个包含单独单词子列表的列表:
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)
不要将变量名用作 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]