在 Python 中重新排列列表中的子列表

问题描述 投票:0回答:2

我有一个包含许多子列表的列表

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]]
python list
2个回答
1
投票

所以你只需要使用

sorted
加上 lambda 函数作为键:

C = sorted(A, key=lambda x: x[0], reverse=False)

1
投票

您可以使用

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)
就可以了。上面介绍的方法适用于所有指数。

© www.soinside.com 2019 - 2024. All rights reserved.