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

如何用Python列表推导式交替合并两个列表?解决语法错误

解决列表推导式实现两列表交替合并的语法错误

你写的代码语法错误是因为列表推导式的生成项不能直接写i,j——Python会将其视为一个未加括号的复合目标,导致语法解析失败。即使给i,j加上括号,得到的也会是元组组成的列表(比如[('2022-01-01','2022-01-31'), ('2022-02-01','2022-02-28')]),不符合你要的扁平化交替结果。

要实现交替合并,用嵌套的列表推导式即可:

list1 = ['2022-01-01','2022-02-01']
list2 = ['2022-01-31','2022-02-28']
big_list = [x for pair in zip(list1, list2) for x in pair]

运行后big_list的结果完全符合预期:

['2022-01-01','2022-01-31','2022-02-01','2022-02-28']

逻辑说明

外层推导式遍历zip(list1, list2)产生的每个元组对(比如第一个元组是('2022-01-01','2022-01-31')),内层推导式遍历元组里的每个元素,将它们逐个添加到结果列表中,从而实现交替合并的效果。

如果想要更简洁的写法,也可以借助itertools.chain(无需纯列表推导式时适用):

from itertools import chain
big_list = list(chain.from_iterable(zip(list1, list2)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 21:43:20