繁体   English   中英

按python中最大项目的顺序对一组列表进行排序

[英]Sorting a set of lists in order of largest item in python

有人知道如何解决这个问题吗? 我有这个

[[1, 2, 3], [5, 4, 3], [2, 0, 1], [2, 3, 4, 1]]

它应该返回这个

5 4 3
2 3 4 1
1 2 3
2 0 1

我正在尝试此代码

output = sorted(map(lambda a: a, list), reverse=True)
for i in output:                                       
   print(' '.join(str(e) for e in i))
                                                               

但它没有返回好的代码

5 4 3
2 3 4 1
2 0 1
1 2 3

使用key arg 设置比较标准:

sorted(a, key=max, reverse=True)

解释: key接受一个函数。 元素将在比较之前传递给此函数。 返回最大元素的函数恰好是内置的,所以我们不需要定义它。

此外,值得一提的是为什么第一个结果,因为列表比较语义有时很有用。 Python 逐个元素比较列表,有点像字符串。 决定因素是第一个元素,如果它们相等 - 比较第二个元素,等等。

这就是为什么以 5 开头的列表排在最前面,而不是以 2 开头的两个列表按它们的第二个元素排序,等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM