首页 > 解决方案 > 给字典中的句子赋值

问题描述

我有 2 个输入,列表中有几条推文['tweet 1', 'tweet 2',...] 和一个带有{'word1': value1;'word 2': value2;...}.

想象一下第一条推文是这样的:

“我喜欢吃土豆”

从字典中的 500 个单词中,有一个值为

{...;'爱':3;...;'土豆':-1;...}。

问题是:如果句子有/有一个值,我如何在每一行中搜索并给它一个最终分数?

tweet=[]
values={}
    for list in tweet:
        divided_tweet=list.split()

我想我必须从这个开始

谢谢大家的帮助

更新:

大家好,每个答案都有效,但不是我想要的方式。

我需要打印出来:

print(str(tweet)+"// The total score is: "str(score))

那么如何定义分数呢?

非常感谢

标签: pythonlistdictionaryfor-loopif-statement

解决方案


您可以使用嵌套列表推导来迭代推文列表中的每个字符串,如果它们存在于字典中,则添加它们的分数(这将返回一个分数列表)

[sum(d.get(j, 0) for j in i.split()) for i in t]

或者正如@yuvgin 建议的那样,您可以创建一个以推文为键的字典及其相应的分数:

{i : sum(d.get(j, 0) for j in i.split()) for i in t}

例子

t = ['I love eating potatoes', 'second tweet']
d = {'love': 3,'potatoes': -1}
{i : sum(d.get(j, 0) for j in i.split()) for i in t}
# {'I love eating potatoes': 2, 'second tweet': 0}

推荐阅读