通过比较 python 中的字符串加权输出

Weighted output by comparing strings in python

我对 python 比较陌生,我对如何在这种情况下继续操作有疑问。我有来自 5 个来源的 5 个结果。每个来源都有一个数字权重。像 city1 到 city5 的权重分别为 2、2、1、1、2。 5个结果需要根据每个选项的权重之和,减少到3个或更少

在示例中,分配权重后的第 1 行的选项如下所示

NewYork - 2 + 1 = 3 (city1,city4)  
Barcelona - 2 (city2)   
Lisbon - 1 (city3)
London - 2 (city5)  

输出必须是组合权重大于等于2的选项
即纽约、巴塞罗那、伦敦。
同样,第二行的输出应该是 London 和 NewYork

我应该能够处理多行数据。

示例:

City1        City2        City3        City4     City5   
NewYork     Barcelona    Lisbon       NewYork  London  
London      NewYork      Sydney       Dublin   London

希望此解决方案对您有所帮助

city={}
weight=[2,2,1,1,2]


with open('example.txt','r') as f:
    lst=f.read().splitlines()
    for line in lst[1:]:
        innerList=line.split()
        for index,element in enumerate(innerList):
            if element in city:
                city[element] += weight[index]
            else:
                city[element]= weight[index]

 print city

最后,要选择出现次数最多的三个城市,请执行以下操作:

print sorted(city.iteritems(),key=lambda x:x[1],reverse=True)[:3]