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

如何移除列表追加后的嵌套括号,将二维列表转为一维列表?

解决二维列表展平(移除嵌套括号)的问题

首先,先明确执行append操作后你的My_list结构:

a = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
b = [2, 5, 8, 11, 6, 4, 8, 1, 2, 7, 1]
My_list = [a, b]
My_list.append(a)
My_list.append(b)
# 此时 My_list = [a, b, a, b],是包含4个子列表的二维列表

如果你的目标是把所有嵌套子列表展平成一维列表(移除所有嵌套括号),这里有几种常用方法:

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

这是Python处理这类问题最常用的方式,语法简洁易懂:

flattened_list = [item for sublist in My_list for item in sublist]

执行后flattened_list会是a + b + a + b,即包含44个元素的一维列表。

如果你的需求只是得到a元素接着b元素(也就是你给出的目标列表),只需取My_list的前两个子列表展平:

flattened_list = [item for sublist in My_list[:2] for item in sublist]

方法2:使用itertools.chain(效率更高)

如果处理的是超大列表,itertools.chain的内存效率更高,因为它不会创建中间列表:

import itertools
flattened_list = list(itertools.chain.from_iterable(My_list))

同样,要只展平前两个子列表的话:

flattened_list = list(itertools.chain.from_iterable(My_list[:2]))

方法3:手动循环扩展(最基础)

如果你想清晰看到每一步操作,可以用循环逐个扩展列表:

flattened_list = []
for sublist in My_list:
    flattened_list.extend(sublist)

限制循环范围到前两个子列表,就能得到你想要的目标结果。

另外,如果你的需求只是单纯合并a和b,还可以直接用列表加法:

flattened_list = a + b

这是最直接的方式,不过仅适用于明确知道要合并哪两个列表的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:15:33