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

多重排序中的每一项排序有的是升序,有的是降序

Python 中可以使用 sorted 函数对二维列表进行多重排序,具体方法如下:

1. 首先定义一个二维列表:

list = [['Bob', 20, 'M'], ['Alice', 18, 'F'], ['John', 22, 'M']]

2. 使用 sorted 函数进行多重排序:

sorted(list, key=lambda x:(x[2],x[1],x[0]))

结果如下:

[['Alice', 18, 'F'], ['John', 22, 'M'], ['Bob', 20, 'M']]

追问

如果各个排序有升↑有降↓呢?比如在这个举例中:
要求以x[1]↑,x[2]↓,x[0]↑的顺序依次多重排序,又该怎么弄?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-01-28
在Python中,使用sorted函数对二维列表进行多重排序可以使用key参数。key参数接收一个函数,该函数接收一个列表元素作为参数,返回一个用于排序的值。可以使用lambda函数来实现多重排序,例如:

sorted_list = sorted(my_list, key=lambda x:(x[1],x[2],x[0]))

这将按第1个元素,第2个元素,第3个元素的顺序对二维列表进行排序。
相似回答
大家正在搜