我有以下脚本:
data = [['A', 4], ['B', 12],
['C', 20], ['D', 38],
['E', 88], ['F', 88]]
print(max(data, key=lambda x: x[1]))
我只得到['E', 88]
作为输出。因为两者具有相同的最高价值,我怎么能得到['E', 88], ['F', 88]
?
答案 0 :(得分:2)
您可以这样做:
data = [['A', 4], ['B', 12],
['C', 20], ['D', 38],
['E', 88], ['F', 88]]
lookup = {}
for pair in data:
lookup.setdefault(pair[1], []).append(pair)
max_key = max(lookup)
print(lookup[max_key])
输出
[['E', 88], ['F', 88]]
函数setdefault(从文档中)执行以下操作:
如果key在字典中,则返回其值。如果没有,请插入 默认值,然后返回默认值。默认默认为无。