如何显示得分最高的“姓名”和“分数”?

时间:2019-05-03 07:07:33

标签: list sorting tuples python-3.7 lexicographic

在这里,我的问题是我有一个元组列表,我需要找出谁得分最高以及相应的球员姓名。

样本输入:

l=[
  ('ram'  ,16),
  ('sara' ,13),
  ('akhil',24),
  ('vinay',24)
]

样本输出:

akhil 24

说明:

首先,我根据元组列表中的第二个元素对数据进行了排序。 在所有玩家中,“ akhil”和“ vinay”的得分相同,因此两者 人员播放器“ akhil”首先从字典或词典顺序开始,所以我打印了“ akhil”。

谢谢。

2 个答案:

答案 0 :(得分:0)

尝试一下。

from collections import OrderedDict
l=[('ram',16),('sara',13),('akhil',24),('vinay',24)]
a = {}
for i in l:
    a[i[0]]=i[1]
a = OrderedDict(sorted(a.items(), key=lambda t: t[0]))
print max(a.iterkeys(), key=lambda k: a[k]),a[max(a.iterkeys(), key=lambda k: a[k])]

答案 1 :(得分:0)

l = [('ram',16),('sara',13),('akhil',24),('vinay',24)]

l1 = []

l.sort(key = lambda x:x [1])

print(l)

对于范围在(1,len(l))中的i:

if(l[i-1][1]==l[i][1]):
    l1.append(l[i][0])
    l1.append(l[i-1][0])
    z=l[i-1][1]

l1.sort()

print(l1 [0],z)