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

Python双层循环列表推导式如何实现列表交错?

拆解交错列表的列表推导式

咱们把这段代码拆成几步,就能彻底搞懂它的逻辑:

  1. 先看zip(l1, l2)的作用
    它会把两个列表对应位置的元素打包成元组,对示例里的l1和l2来说,zip(l1, l2)迭代后会依次产出:(1,2)、(3,4)、(5,6)、(7,8)这四个元组。

  2. 把列表推导式转换成普通循环
    你觉得困惑的列表推导式,本质就是两层嵌套的for循环,把它展开成普通写法就一目了然:

    l1 = [1,3,5,7]
    l2 = [2,4,6,8]
    l3 = []
    # 外层循环:逐个取出zip生成的元组
    for pair in zip(l1, l2):
        # 内层循环:遍历当前元组里的每个元素
        for val in pair:
            l3.append(val)
    

    运行这段代码,l3的结果和原推导式完全一致。

  3. 再回头看列表推导式的逻辑
    原推导式[val for pair in zip(l1, l2) for val in pair]只是把嵌套循环写成了紧凑的一行:

    • 先执行外层循环for pair in zip(l1, l2),拿到每个元组
    • 再对每个元组执行内层循环for val in pair,逐个取出元组里的元素
    • 最后把所有取出的val按顺序收集成新列表

这样一步步走下来,四个元组就被逐个拆解,元素按顺序拼接成了八个元素的交错列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:13:11