Python-对包含元组的列表进行排序

Python-对包含元组的列表进行排序,python,list,sorting,Python,List,Sorting,如何按2对类似于此的列表进行排序。元组元素升序: list = [[('A',4),('B',2),('C',7)],[('A',5),('B',1),('C',9)]] 看起来像这样(就地): 分类 sorted(list, key=lambda entry: entry[1], reverse=False) 无法工作,因为我不知道如何“访问”lambda函数中的第二个(内部)列表您可以使用列表上的sort()方法对其进行适当排序。例如: for sub_list in my_list:

如何按2对类似于此的列表进行排序。元组元素升序:

list = [[('A',4),('B',2),('C',7)],[('A',5),('B',1),('C',9)]]
看起来像这样(就地):

分类

sorted(list, key=lambda entry: entry[1], reverse=False)
无法工作,因为我不知道如何“访问”lambda函数中的第二个(内部)列表

您可以使用列表上的
sort()
方法对其进行适当排序。例如:

for sub_list in my_list:
    sub_list.sort(key=lambda entry: entry[1])
或者相等,但是稍微快一点

for sub_list in my_list:
    sub_list.sort(key=operator.itemgetter(1))

嵌套列表的重新排序标准是什么?如果lambda不能做到这一点,只需使用单独的函数并参考它,我不知道这是在做什么。元组是不可变的,因此
(2,1)
->
(1,2)
不能在位。嵌套列表必须按此顺序保留。只需对包含的元组进行排序OK,现在我明白了:-)谢谢幸运的是,如果我打印子列表,它的排序是正确的,但是当我打印子列表时,没有任何变化。只是猜测一下,但是子列表是我子列表的一部分吗。如果是这样,它实际上是在切片中创建元素的新副本,然后对其进行排序。这就是为什么我的清单没有被分类的原因place@JH:上述代码确实更改了现有列表,请参阅。如果它对您不起作用,那么您正在做一些不同的事情,但是只有当您向我们展示代码时,我们才能知道您在做什么。
for sub_list in my_list:
    sub_list.sort(key=operator.itemgetter(1))