我有一个包含许多子列表的列表
A
。我想根据每个子列表的第一个元素重新组织此列表,即按升序排列。我展示了当前和预期的输出。
A=[[27, 31, 32, 36], [30, 34, 35, 39], [28, 32, 33, 37], [29, 33, 34, 38]]
C=[]
for i in range(0,len(A)):
B=A[i][0]
C.append(B)
C.sort()
print(C)
当前输出为
[27, 28, 29, 30]
预期输出为
[[27, 31, 32, 36], [28, 32, 33, 37], , [29, 33, 34, 38], [30, 34, 35, 39]]
所以你只需要使用
sorted
加上 lambda 函数作为键:
C = sorted(A, key=lambda x: x[0], reverse=False)
您可以使用
key
函数的 sorted
参数和 lambda
关键字来创建一个返回列表第一个元素的匿名函数。
>>> A=[[27, 31, 32, 36], [30, 34, 35, 39], [28, 32, 33, 37], [29, 33, 34, 38]]
>>> sorted(A, key = lambda iterable: iterable[0])
[[27, 31, 32, 36], [28, 32, 33, 37], [29, 33, 34, 38], [30, 34, 35, 39]]
对于只按第一个元素排序,
sorted
默认这样做,所以只需要sorted(A)
就可以了。上面介绍的方法适用于所有指数。