比较具有多个值的列表

时间:2013-08-05 17:01:23

标签: python list

好的,我已经想到了我该做什么。 我有一个单词列表:

T_buffer=docs_A_rec[key]['words']

包含:

['from', 
'wiml', 
'stein', 
'focus', ...]

我有另一个列表(templist),其中包含:

[('focus', -7.734475849276923e-07), 
('four', -7.734475849276923e-07), 
('rapid', -7.734475849276923e-07),
...]

我希望T_buffer中的每个单词与templist中的所有单词(列表的所有元组中的第一个元素)进行比较 如果一个单词匹配,那么我想在dict中存储单词和templist的值: docs_A_rec[key]['idf']=templist (word,number) 如果在templist中存在单词,那么我想在dict中存储它在templist中不存在的单词和0 docs_A_rec[key]['idf']=(word,0)

像这样的东西:

for key in docs_A_rec:
   T_buffer=docs_A_rec[key]['words']
   if [item for item in T_buffer if item in templist]:
       `docs_A_rec[key]['idf']=templist`
   else:
       `docs_A_rec[key]['idf']=[item,0]

提前谢谢!

1 个答案:

答案 0 :(得分:0)

我希望这就是你所说的,一个非常简化的例子:

templist = [('word',1234.555),('word2',5534342.3434)]
compare_dict['word'] = ['word','another word','home']

鉴于上述情况:

  

我希望列表中的每个单词都与templist进行比较   单词,如果匹配则dict[word]['idf']=templist(word,number)   否则dict[word]['idf']=templist(word,0)

for word, number in templist:
    if word in compare_dict['word']:
        compare_dict['idf'][word] = number
    else:
        compare_dict['idf'][word] = 0