我有这项专门技能,可以在不使用字典的情况下在许多给定的文章中找到一组特定的人数。
当我尝试使用它们的索引从列表中获取元素时,我遇到了一个问题。专门想象一下,我有3个列表:
[u'Putin', u'Fattah', u'Vladimir',u'Cameron', u'Bashar', u'al-Baghdadi']
counts : [3, 6, 1, 1, 1, 0]
results: [6, 6, 1, 1, 1, 0]
Sorted results: [6, 6, 1, 1, 1, 0]
第一个列表包含人员的姓名,第二个列表包含人员的姓名,第三个列表是在应用公式后得出的,第四个列表是排序的第三个。
鉴于我需要比较两个或三个更高的值,并在执行此操作时返回被提及最多的人:
elif res[0] == res[1]:
idx = results[i].index(sorted_res[0])
idx2 = results[i].index(sorted_res[1])
print idx, results[idx]
print idx2, results[idx2]
我回来了:
1 Putin
1 Putin
相反,我想回到哪里:
1 Putin
2 Fattah
关于不使用字典是否有可能的任何想法?
先感谢您。
我将它们全部压缩在一起,以便您有一个列表,像[['Putin',3,6),('Fattah',6,6),...]。然后,您可以按元组的第二个元素(结果)进行排序。
names = [u'Putin', u'Fattah', u'Vladimir',u'Cameron', u'Bashar', u'al-Baghdadi']
counts = [3, 6, 1, 1, 1, 0]
results = [6, 6, 1, 1, 1, 0]
all_vals = zip(names, counts, results)
in_order = sorted(all_vals, key = lambda x: x[2], reverse = True)
print in_order
print in_order[0][0] #Putin
print in_order[1][0] #Fattah
for i,e in enumerate(in_order):
print i, e[0]
# 0 Putin
# 1 Fattah
# 2 Vladimir
# ...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句