我需要比较两种列表,如下所示。
单词列表及其频率
list_1=[('psicomotricita',6), ('psicomotorio',5) , ('psicomotorie',6),('psicomotore', 7),
('bella',1), ('biella',7), ('bello',3),('zorro',4)]
列表列表,其中每个子列表都是一个单词的相似性。
list_2=[['psicomotricità', 'psicomotorio','psicomotorie','psicomotore']
['bella', 'biella', 'bello']
['zorro']]
因此,我需要循环list_2的每个子列表,以便选取在list_1中与最大频率进行比较的单词。
结果应该是:
final_list['psicomotore','biella','zorro']
有人可以帮助我吗?谢谢!
经过长时间的斗争(我是python的新新手(,我解决了上面的问题。
所以,首先我将元组列表转换为字典:
d = {t[0]:int(t[1]) for t in list_1}
其次,我创建了以下函数:
def SortTuples(list, dict):
final_ls= []
ddd= []
for el in list_2:
for key, value in d.iteritems():
if key in el:
ddd.append((key,value))
z= (max(ddd,key=itemgetter(1))[0])
final_ls.append(z)
ddd= []
return final_ls
结果是一个列表,其中包含具有最大频率的单词:
Out: ['psicomotore', 'biella', 'zorro']