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

如何将两个嵌套列表合并为一对一对应元素的扁平列表?

问题描述

现有两个嵌套列表:

list1 = [[1,2],[3,4]]
list2 = [[11,22],[33,44]]

尝试使用以下代码:

output = list(tuple(zip(i, j)) for i, j in zip(list1, list2))

得到的输出为:

[((1, 11), (2, 22)), ((3, 33), (4, 44))]

但期望得到一对一对应元素的扁平列表:

[(1,11),(2,22),(3,33),(4,44)] 

请问该如何修正代码?

解决方案

方法1:嵌套列表推导式

直接遍历两层配对结构,把每个元素对直接收集到结果列表中:

list1 = [[1,2],[3,4]]
list2 = [[11,22],[33,44]]

output = [pair for i, j in zip(list1, list2) for pair in zip(i, j)]
print(output)  # 输出: [(1, 11), (2, 22), (3, 33), (4, 44)]

这种写法拆解了原代码的嵌套逻辑,先配对两个列表的子列表,再遍历子列表的元素对,直接将每个元素对加入结果,避免生成嵌套结构。

方法2:用itertools.chain扁平化结构

借助itertools.chain工具直接展开嵌套的元素对集合:

from itertools import chain

list1 = [[1,2],[3,4]]
list2 = [[11,22],[33,44]]

output = list(chain.from_iterable(zip(i, j) for i, j in zip(list1, list2)))
print(output)  # 输出: [(1, 11), (2, 22), (3, 33), (4, 44)]

chain.from_iterable会自动提取传入可迭代对象中的所有元素,将嵌套结构拼接成扁平迭代器,最后转成列表即可得到目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:15:37