给字典中的句子赋值

时间:2019-02-03 17:00:31

标签: python list dictionary for-loop if-statement

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

想象一下第一条推文是:

  

“我喜欢吃土豆”

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

  

{...;'love':3; ...;'potatoes':-1; ...}。

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

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

我想我必须从这个开始

谢谢大家的帮助

已更新:

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

我需要打印出以下内容:

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

那我该如何定义分数?

非常感谢您

2 个答案:

答案 0 :(得分:2)

您可以使用嵌套的列表理解遍历推文列表中的每个字符串,并添加它们的分数(如果字典中存在它们的话)(这将返回分数列表)

[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}

答案 1 :(得分:1)

如果我正确理解了您的问题,请采取以下解决方案:

2.7.1