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)]

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-11-13
在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
第2个回答  推荐于2017-09-29
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函数对list进行排序,但是如果排序的对象是一个包含tuple的list时,sorted函数会使用tuple的第一个元素。如果想要使用tuple的第二个元素进行排序,可以向sorted函数传入一个key参数,key参数必须是一个函数,输入是list的一个元素,输出最好是一个数字或简单的字符。构造这样一个函数...

python list排序的两种方法及实例讲解
如果我们希望在进行第二个关键字排序后再根据第一个关键字进行排序,可以使用以下两种方法:实例8:利用元组的比较从左到右进行排序。实例9:通过指定排序函数来实现多关键字排序。实例8能够工作的原因在于元组的比较是从左到右进行的,即先比较第一个元素,如果相等则比较第二个元素。

如何对列表进行排序python
多关键字排序时,可以通过调整key参数,如实例7和8所示。实例8之所以工作,是因为元组的比较遵循从左到右的顺序。如果需要先按第二个关键字排序,再按第一个关键字排序,可以组合多个键,如实例9。总结来说,Python的sort()和sorted()函数为列表排序提供了灵活的选项,通过key参数,用户可以根据需要对列...

Python-List操作
4、查看list 使用count() 方法:用于统计某个元素在列表中出现的次数。alist = [123, 'xyz', 'zara', 'abc', 123]print(alist.count(123)) # 以上实例输出结果如下:>>>2 使用index()方法:用于从列表中找出某个值第一个匹配项的索引位置。alist = [123, 'xyz', 'zara', 'abc', ...

怎样用python将数组里的数从高到低排序
1、首先我们定义一个列表输入一串大小不一的数字。2、可以用sort()方法对定义的列表排序,注意,sort只是对列表排序,它没有返回一个值。3、输入print列表名即可得到排序后的列表数据。4、倒序可以用这个reverse方法,把元素位置倒转过来。5、然后再次print列表名,这样就会得到倒转顺序之后的列表数据。5、...

python怎么使用sort
举例来说,如果有一个元组列表`alist`,我们可以用`sorted(alist, key=itemgetter(2, 1), reverse=False)`进行多级排序,先按第3个元素排序,然后按第2个元素排序。总结起来,Python的`sort`功能强大,可以用于原地排序或创建排序副本,并且允许自定义排序规则。通过`key`和`itemgetter`,我们可以根据...

Python中给字典排序的三种方法(有一种你绝对没见过)
第一种方法:使用自定义函数lambda 通过dic.items()获取由字典键名和键值组成的元组列表,然后通过自定义函数获取元组的第2个元素,作为排序的依据即key。默认是按照升序排列,如果需要降序排列,可以把reverse设为True。第二种方法:使用operator的方法 operator. itemgetter(item)和operator. itemgetter(*...

python中一个列表中嵌套元组,怎么用for循环遍历?
8, 9)]for i in my_list:for j in i:print(j)输出结果为:1 2 3 4 5 6 7 8 9 在这个例子中,我们定义了一个名为my_list的列表,其中包含三个元组。外层循环遍历my_list中的每个元素,内层循环遍历该元素中的每个元组。在每次内层循环中,我们使用print()函数打印出当前元组中的元素。

python 中列表 list 的使用
首先,要找到列表中某一特定元素出现的位置,可以使用 `list.index()` 方法。例如,`my_list.index('target')` 可以返回元素 'target' 在列表中的第一个位置。如果元素重复出现,可以借助 `enumerate()` 函数,它将列表元素与它们的索引合并为元组序列,从而找到所有出现位置。为了查找包含特定字符串...

python中list.sort()的用
txt', 'Chr1-20.txt', 'Chr1-3.txt', 'Chr1-5.txt']这相当于把这个关键字当做字符串了,很显然,在python中,'2' > '10'你可以定制你想要的key, 如 key = lambda x : len(x) 按照序列的长度去排序。key= lambda x : (x[1], x[0]) 按二个元素,再第一个 等等。。。

相似回答