如何将多组嵌套列表分别合并为单个列表?
合并嵌套列表为单个列表的解决方案
针对你需要将每组双元素嵌套列表合并为单个列表的需求,这里提供几种直接的Python实现方式:
1. 单个嵌套列表的合并
直接利用列表加法拼接两个子列表,这是最直观高效的方式:
# 处理第一个例子 nested_list = [[], [2, 3, 4, 5]] merged = nested_list[0] + nested_list[1] print(merged) # 输出: [2, 3, 4, 5] # 处理第二个例子 nested_list = [[1], [3, 4, 5]] merged = nested_list[0] + nested_list[1] print(merged) # 输出: [1, 3, 4, 5]
2. 批量处理多组嵌套列表
如果有一组这样的嵌套列表,用列表推导式批量生成结果:
# 所有待处理的嵌套列表 all_nested = [ [[], [2, 3, 4, 5]], [[1], [3, 4, 5]], [[1, 2], [4, 5]], [[1, 2, 3], [5]], [[1, 2, 3, 4], []] ] # 批量合并 all_merged = [lst[0] + lst[1] for lst in all_nested] print(all_merged) # 输出: [[2, 3, 4, 5], [1, 3, 4, 5], [1, 2, 4, 5], [1, 2, 3, 5], [1, 2, 3, 4]]
3. 兼容多子列表的通用合并方式
如果你的嵌套列表里子列表数量不固定(不止2个),可以用sum()函数快速合并:
nested_list = [[1,2], [3], [4,5]] merged = sum(nested_list, []) print(merged) # 输出: [1, 2, 3, 4, 5]
注意:这种方法在子列表数量多、元素量大时效率较低,此时更推荐用itertools.chain:
import itertools nested_list = [[1,2], [3], [4,5]] merged = list(itertools.chain(*nested_list)) print(merged) # 输出: [1, 2, 3, 4, 5]
补充说明
你之前尝试用列表乘整数的思路不对,列表与整数相乘是重复整个列表的元素(比如[1,2]*2得到[1,2,1,2]),而非拼接子列表,列表加法才是实现子列表拼接的正确操作。
内容的提问来源于stack exchange,提问作者ShouChongGuoNan
相关产品推荐
相关产品推荐

