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

Python如何对嵌套列表进行内外双层升序排序?求列表推导式实现

Python嵌套列表的双层升序排序实现

要同时完成内层列表升序、外层列表升序的需求,完全可以用列表推导式结合内置排序方法实现,以下是具体方案:

分步实现(清晰直观)

abc = [[6, 2], [7, 1]]
# 第一步:用列表推导式对每个子列表单独升序排序
sorted_sub_lists = [sorted(sub_list) for sub_list in abc]
# 第二步:对处理后的外层列表按升序排序
final_result = sorted(sorted_sub_lists)
print(final_result)  # 输出:[[1, 7], [2, 6]]

一行紧凑写法

如果追求代码简洁,可以把两步合并成一行:

abc = [[6, 2], [7, 1]]
final_result = sorted([sorted(sub) for sub in abc])
print(final_result)  # 输出:[[1, 7], [2, 6]]

原代码问题说明

你之前使用的list(map(sorted, abc))仅完成了内层子列表的排序,没有对排序后的外层列表进行二次排序,因此得到的结果是[[2, 6], [1, 7]],不符合外层升序的要求。

自定义排序规则(可选)

如果需要按其他规则排序外层列表,比如按子列表的第二个元素排序,可以给sorted()传入key参数:

# 按子列表第二个元素升序排列
result = sorted([sorted(sub) for sub in abc], key=lambda x: x[1])
print(result)  # 输出:[[2, 6], [1, 7]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:40:43