Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在嵌套列表中查找最大值_Python_Python 3.x - Fatal编程技术网

Python 在嵌套列表中查找最大值

Python 在嵌套列表中查找最大值,python,python-3.x,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],因为两者都有相同的最高值?您可以: data = [['A', 4], ['B', 12], ['C', 20

我有以下脚本:

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]
,因为两者都有相同的最高值?

您可以:

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]]
函数执行以下操作(来自文档):

如果键在字典中,则返回其值。如果不是,请插入带有 默认值和返回默认值。默认值为“无”


mx=max(数据,key=lambda x:x[1])[1];mx_值=[[l,v]表示数据中的l,v,如果v==mx];打印(mx_值)#['E',88],'F',88]
@azro
最大值=[couple for couple in data if couple[1]==mx]
以便结果始终与基础数据在同一个容器中,而不必指定它是一个列表(您的
[l,v]
)@Guimoute是azro的解决方案错了吗?@user977828不,它有效,但是,如果您将
数据更改为包含元组(
数据=[('A',4),(B',12),…])
,azro方法返回的值将是列表而不是元组。在我的解决方案中,不需要使用key with max参数max(查找)将位于字典的键上