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

Python高级嵌套列表推导式[ (a, b) for a in range(3) for b in range(a) ]结果求解

Python嵌套列表推导式执行逻辑详解

要分析的代码如下:

[(a, b) for a in range(3) for b in range(a)]

运行结果为:[(1, 0), (2, 0), (2, 1)]


执行逻辑分步拆解

1. 推导式等价转换

嵌套列表推导式的循环顺序和书写顺序完全一致,写在前面的是外层循环,写在后面的是内层循环,上述代码等价于普通嵌套循环:

res = []
# 外层循环对应推导式第一个for语句
for a in range(3):
    # 内层循环对应推导式第二个for语句
    for b in range(a):
        res.append((a, b))

2. 逐轮循环计算

外层循环range(3)会生成0、1、2三个值,逐轮执行逻辑如下:

  • 当a=0时:内层循环遍历range(0),这是一个空序列,没有元素可以迭代,不会生成任何元组
  • 当a=1时:内层循环遍历range(1),仅取值b=0,生成元组(1, 0)加入结果列表
  • 当a=2时:内层循环遍历range(2),依次取值b=0、b=1,依次生成元组(2, 0)、(2, 1)加入结果列表

3. 结果汇总

所有循环执行完成后,结果列表按元素生成顺序排列,就是最终输出的[(1, 0), (2, 0), (2, 1)]


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:45:11