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

如何从元组列表生成普通列表?附Python代码寻求解决方案

解决方案

你当前的代码生成的是元组组成的列表,要得到扁平的普通列表,可以通过以下几种方式修改:

方法1:修改现有循环逻辑

直接在循环中逐个添加两个列表对应位置的元素,而不是添加元组:

from typing import List, Tuple
n = 2
a = [1,3]
b = [2,3]
def zipper(a: List[int], b: List[int]) -> List[int]:
    zippy = []
    for i in range(len(a)):
        # 分别添加a和b对应位置的元素
        zippy.append(a[i])
        zippy.append(b[i])
    return zippy
print(zipper(a, b))  # 输出: [1, 2, 3, 3]

或者用extend方法一次性添加元组里的所有元素,效果完全一致:

zippy.extend((a[i], b[i]))

方法2:使用列表推导式(更简洁)

利用嵌套列表推导式直接展开元组对:

from typing import List, Tuple
a = [1,3]
b = [2,3]
def zipper(a: List[int], b: List[int]) -> List[int]:
    return [num for pair in zip(a, b) for num in pair]
print(zipper(a, b))  # 输出: [1, 2, 3, 3]

这里zip(a, b)会生成(1,2)、(3,3)这样的元组对,内层循环遍历每个元组里的元素并收集到结果列表中。

方法3:使用itertools.chain展开

借助itertools模块的chain.from_iterable快速展开嵌套结构:

from typing import List, Tuple
from itertools import chain
a = [1,3]
b = [2,3]
def zipper(a: List[int], b: List[int]) -> List[int]:
    return list(chain.from_iterable(zip(a, b)))
print(zipper(a, b))  # 输出: [1, 2, 3, 3]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:01:16