list - 如何显示得分最高的“姓名”和“分数”?
问题描述
这里我的问题是我有一个元组列表,我需要找出谁得分最高,以及相应的玩家姓名。
样本输入:
l=[
('ram' ,16),
('sara' ,13),
('akhil',24),
('vinay',24)
]
样本输出:
akhil 24
解释:
首先,我根据元组列表中的第二个元素对数据进行排序。在所有玩家中,“akhil”和“vinay”的分数相同,所以在两个人中,玩家“akhil”按字典或词典顺序首先开始,所以我打印了“akhil”。
谢谢。
解决方案
尝试这个。
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])]
推荐阅读
- swift - Which Swift character count should I use with remove(first:)?
- jquery - ng-click not working with .load(html)
- ios - Xcode 9 - “文件是为 x86_64 构建的,它不是被链接的架构(armv7)”
- macos - 关于通过火线调试 macOS 内核
- vba - 具有 2 个单元格值的数据透视表过滤
- python - keras cnn_lstm 输入层不接受一维输入
- amazon-dynamodb - DynamoDB 嵌套查询
- dji-sdk - 使用新的 DJI-UXSDK-iOS 4.7 编译应用程序时出错,找不到 FFmpeg 库
- excel - 索引匹配正确的公式
- python - 使用 pandas 进行高效的成对计算