如何将数量不确定的多个列表合并为一个列表?
Python循环生成多列表合并为单列表实现方案
首先说明:你当前使用的append方法仅适用于每次循环拿到的是单个元素的场景,如果每次循环得到的是子列表,append会生成嵌套的二维列表,无法得到扁平的完整列表,可根据你的场景选择以下任意方案实现:
方案1:extend() 方法(最常用,可读性最高)
直接将子列表的所有元素追加到总列表末尾,不会产生嵌套结构,适合需要在循环内添加额外业务逻辑的场景:
# 注意不要用list作为变量名,会覆盖Python内置的list类型引发异常 total_list = [] for i in item: # 此处替换为你自己的业务逻辑,生成每次循环对应的子列表 current_sub_list = your_logic_to_get_sub_list(i) total_list.extend(current_sub_list) print(total_list)
方案2:列表推导式(代码最简洁)
如果逻辑简单不需要额外中间处理,可以直接用嵌套列表推导式一行实现:
total_list = [element for sub in item for element in your_logic_to_get_sub_list(sub)]
方案3:itertools.chain(大数据量最优)
如果子列表数量多、数据量大,该方案内存效率更高,避免循环过程中频繁修改总列表:
from itertools import chain total_list = list(chain.from_iterable(your_logic_to_get_sub_list(i) for i in item))
内容的提问来源于stack exchange,提问作者user12252991
相关产品推荐
相关产品推荐

