我有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))
那我该如何定义分数?
非常感谢您
答案 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