在嵌套列表中查找最大值

时间:2020-11-12 21:42:47

标签: python python-3.x

我有以下脚本:

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]

1 个答案:

答案 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在字典中,则返回其值。如果没有,请插入 默认值,然后返回默认值。默认默认为无。

相关问题