Hte*_*tet 2 python tuples list
我想总结列表中的每个元素,通过匹配列表中的单词可以实现哪些值.包含每个单词的值和列表的元组的短语如下:
val_tuple = [('and',3),('cat',2),('dog',3),('only',5),('horse',3),('car',3),...]
word_list = ['cat and dog',
'only horse',
'dog and horse',
'only dog',...]
Run Code Online (Sandbox Code Playgroud)
输出应该是这样的:
result = [('cat and dog', 8),
('only horse', 8),
('dog and horse', 9),
('only dog', 8),...]
Run Code Online (Sandbox Code Playgroud)
我无法找到方法并坚持几次尝试只是为了总结列表中的值:
for w in word_list:
for val in val_tuple:
if val[0] in w:
sum = val[0]
sum += sum
Run Code Online (Sandbox Code Playgroud)
首先,您最好为您的单词值构建一个字典:
word_values = dict(val_tuple)
Run Code Online (Sandbox Code Playgroud)
您可以简单地使用列表理解:
result = [(sentence,sum(word_values.get(word,0) for word in sentence.split()))
for sentence in word_list]Run Code Online (Sandbox Code Playgroud)
粗体部分将得分加起来.所以我们为每一个人所做的sentence就是我们.split()用来获得这些词语.现在对于这些词我们可以得到word_values.get(word,0):这意味着我们进行查找,并且如果该元素没有找到,我们假设字值0.我们sum(..)对所有这些值,并返回一个元组(sentence,sum(..))的每一个句子.
根据提供的样本数据,我获得:
>>> result
[('cat and dog', 8), ('only horse', 8), ('dog and horse', 9), ('only dog', 8)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |