python中的list元组如何按照第二维元素排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中的list元组如何按照第二维元素排序相关的知识,希望对你有一定的参考价值。

在Python中可以使用sorted函数对list进行排序,但是如果排序的对象是一个包含tuple的list时,sorted函数会使用tuple的第一个元素。

如果想要使用tuple的第二个元素进行排序,可以向sorted函数传入一个key参数,key参数必须是一个函数,输入是list的一个元素,输出最好是一个数字或简单的字符。

构造这样一个函数可以使用匿名函数lambda,示例代码如下:

myList = [('dungeon',7),('winterfell',4),('bran',9),('meelo',6)]
print sorted(myList, key=lambda x:x[1])
# [('winterfell', 4), ('meelo', 6), ('dungeon', 7), ('bran', 9)]

参考技术A 在Python中可以使用sorted函数对list进行排序,但是如果排序的对象是一个包含tuple的list时,sorted函数会使用tuple的第一个元素。如果想要使用tuple的第二个元素进行排序,可以向sorted函数传入一个key参数,key参数必须是一个函数,输入是list的一个元素,输出最好是一个数字或简单的字符。
构造这样一个函数可以使用匿名函数lambda,示例代码如下:
listA = [('a', 1), ('c', 3), ('d', 4), ('b', 2)]
sorted(listA, key=lambda x:x[1])
输出结果为:
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
对List进行排序,Python提供了两个方法
方法1.用List的内建函数list.sort进行排序
list.sort(func=None, key=None, reverse=False)
Python实例:

list = [2,5,8,9,3]
list
[2,5,8,9,3]
list.sort()
list
[2, 3, 5, 8, 9]
方法2.用序列类型函数sorted(list)进行排序
Python实例:
list = [2,5,8,9,3]
list
参考技术B In [1]: a=((1,'c'),(4,'d'),(2,'b'),(3,'a'))
In [2]: sorted(a,key=lambda x:x[1])
Out[2]: [(3, 'a'), (2, 'b'), (1, 'c'), (4, 'd')]
In [3]: sorted(a)
Out[3]: [(1, 'c'), (2, 'b'), (3, 'a'), (4, 'd')]

本回答被提问者和网友采纳

以上是关于python中的list元组如何按照第二维元素排序的主要内容,如果未能解决你的问题,请参考以下文章

Python 二维列表,用sorted函数怎么多重排序?

python 使用 sorted 对 列表嵌套元组的数据进行排序

PHP将二位数组按照第二维的某个元素的值进行排序

python 元组操作(tuple)

python 排序 sorted 如果第一个条件 相同 则按第二个条件排序

Python 按照 list 中的字典的某个 key 排序