python - 给字典中的句子赋值
问题描述
我有 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))
那么如何定义分数呢?
非常感谢
解决方案
您可以使用嵌套列表推导来迭代推文列表中的每个字符串,如果它们存在于字典中,则添加它们的分数(这将返回一个分数列表)
[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}