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

如何通过Python列表推导式将嵌套列表转换为一维列表

解决嵌套列表展平为一维列表的问题

嘿,我来给你捋捋这个问题哈~你之前写的[x for x in [x for x in a]]其实只是把原列表里的每个子列表直接复制了一遍,相当于做了个浅拷贝,所以输出还是嵌套的二维列表。要得到一维的[1, 2, 1, 2],有这几种常用方法:

方法1:双层列表推导式(最直观)

这是Python里处理简单嵌套列表最常用的方式,直接通过两层循环遍历元素:

a = [[1, 2], [1, 2]]
print([item for sublist in a for item in sublist])

这个推导式的逻辑和普通嵌套循环一样:先遍历外层列表的每个子列表sublist,再遍历子列表里的每个元素item,把所有item收集到新列表里,结果就是你要的一维列表。

方法2:用itertools.chain工具

如果你处理的嵌套层级固定(这里是两层),可以用标准库itertools里的chain方法来拼接子列表:

from itertools import chain

a = [[1, 2], [1, 2]]
# 两种写法都可以
print(list(chain(*a)))
# 或者更优雅的chain.from_iterable,不需要解包
print(list(chain.from_iterable(a)))

chain(*a)会把a里的每个子列表作为独立参数传给chain,它会把这些子列表的元素依次串联起来,最后转成列表就得到了一维结果。

方法3:普通嵌套循环(适合新手理解)

如果觉得列表推导式有点绕,用普通的循环写法也能达到目的,逻辑更清晰:

a = [[1, 2], [1, 2]]
flat_list = []
for sublist in a:
    for item in sublist:
        flat_list.append(item)
print(flat_list)

先初始化一个空列表,然后逐个遍历子列表里的元素,把它们添加到空列表中,最终得到展平后的一维列表。

以上几种方法运行后,输出都是你期望的[1, 2, 1, 2]哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 18:48:13