如何从元组列表生成普通列表?附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
相关产品推荐
相关产品推荐

