首页 > 解决方案 > 如何显示得分最高的“姓名”和“分数”?

问题描述

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

样本输入:

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

样本输出:

akhil 24

解释:

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

谢谢。

标签: listsortingtuplespython-3.7lexicographic

解决方案


尝试这个。

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])]

推荐阅读