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

如何通过交替取元素的方式合并两个列表?

交叉合并两个列表(交替取元素)

需要将两个等长列表交叉合并,交替取出两个列表中的元素。示例如下:

char = ["A", "B", "C", "D", "E", "F", "G"]
num = ["1", "2", "3", "4", "5", "6", "7"]

期望得到的合并结果:

result = ["A", "1", "B", "2", "C", "3", "D", "4", "E", "5", "F", "6", "G", "7"]

方法1:列表推导式 + zip

利用zip将两个列表的对应元素配对,再通过嵌套列表推导式展开每一对元素:

char = ["A", "B", "C", "D", "E", "F", "G"]
num = ["1", "2", "3", "4", "5", "6", "7"]
result = [item for pair in zip(char, num) for item in pair]
print(result)

方法2:itertools.chain 扁平化处理

借助itertools.chain的from_iterable方法,直接扁平化配对后的元素序列,代码更简洁:

from itertools import chain

char = ["A", "B", "C", "D", "E", "F", "G"]
num = ["1", "2", "3", "4", "5", "6", "7"]
result = list(chain.from_iterable(zip(char, num)))
print(result)

方法3:手动循环实现(适合理解底层逻辑)

通过循环逐个交替添加两个列表的元素,逻辑清晰易懂:

char = ["A", "B", "C", "D", "E", "F", "G"]
num = ["1", "2", "3", "4", "5", "6", "7"]
result = []
for c, n in zip(char, num):
    result.append(c)
    result.append(n)
print(result)

注:如果两个列表长度不一致,zip会以较短列表的长度为准。若需保留较长列表的剩余元素,可改用itertools.zip_longest,并处理填充的None值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:45:32