You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何根据子列表首元素对列表内子列表重排

按子列表首元素对列表升序排序

我有一个包含多个子列表的列表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内置的排序函数,通过key参数指定排序依据为子列表的第一个元素即可:

方法1:生成新的排序后列表(不修改原列表)

A = [[27, 31, 32, 36], [30, 34, 35, 39], [28, 32, 33, 37], [29, 33, 34, 38]]
sorted_A = sorted(A, key=lambda x: x[0])
print(sorted_A)

方法2:直接修改原列表

A = [[27, 31, 32, 36], [30, 34, 35, 39], [28, 32, 33, 37], [29, 33, 34, 38]]
A.sort(key=lambda x: x[0])
print(A)

两种方法都能得到期望输出,核心是利用key参数告诉排序函数:按照每个子列表的第一个元素(x[0])进行升序排序。

内容的提问来源于stack exchange,提问作者modishah123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 23:48:24