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

Python3如何交替提取两个元组元素存入空列表得到指定输出

Python等长元组交替拼接优化方案

现有代码问题说明

你提供的逐一下标append的代码存在笔误,漏写了list5.append(tuple2[2]),运行后输出结果会缺失元素28,和预期结果不符。且该写法通用性极差,只要元组长度发生变化就需要逐行修改代码。

优化实现方案

下面给出几种不同场景的优化写法,均支持任意长度的等长元组交替拼接,无需手动逐个处理下标:

方案1:列表推导式+zip(最简洁通用)

利用zip将两个元组的对应位置元素配对,再通过列表推导式展开配对元素即可,代码量最少,可读性强:

tuple1 = (3,5,16,35,75)
tuple2 = (1,19,28,44,64)
list5 = [elem for pair in zip(tuple1, tuple2) for elem in pair]
print(list5)

方案2:循环遍历下标(新手易理解)

如果刚接触Python不熟悉列表推导式,可以用循环遍历下标实现,逻辑直白:

tuple1 = (3,5,16,35,75)
tuple2 = (1,19,28,44,64)
list5 = []
# 两个元组长度相同,遍历下标范围取其中一个的长度即可
for i in range(len(tuple1)):
    list5.append(tuple1[i])
    list5.append(tuple2[i])
print(list5)

方案3:itertools.chain(长序列性能最优)

如果需要处理长度很大的元组,用itertools.chain的性能最高,避免额外的中间内存开销:

from itertools import chain

tuple1 = (3,5,16,35,75)
tuple2 = (1,19,28,44,64)
list5 = list(chain.from_iterable(zip(tuple1, tuple2)))
print(list5)

注意事项

以上方案默认两个元组长度一致,如果实际使用时元组长度不同,zip会自动截断到较短元组的长度;如果需要保留所有元素,可以改用itertools.zip_longest处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:48:02