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

Python列表与range函数解析:生成二维坐标列表代码原理咨询

代码解析与Python基础知识点说明

一、positions = [(r, c) for r in range(3) for c in range(3)] 工作原理

这是Python的列表推导式,是一种快速生成列表的简洁语法,完全等价于以下普通循环写法:

positions = []
for r in range(3):
    for c in range(3):
        positions.append((r, c))

具体执行逻辑:

  • 外层循环先遍历range(3)生成的整数序列0, 1, 2,每次取一个值赋值给变量r
  • 每拿到一个r,就执行内层循环:遍历range(3)生成的0, 1, 2,赋值给变量c
  • 每次内层循环都会生成一个元组(r, c),并将这个元组添加到最终的列表中
  • 所有循环执行完毕后,就得到了包含9个坐标元组的目标列表

二、Python 列表(list)基础

  • 定义:用方括号[]包裹的有序容器,可存放不同类型的元素(整数、字符串、元组甚至其他列表均可)
  • 核心特点:
    • 有序:每个元素对应唯一索引(从0开始计数),可通过索引直接访问元素,比如my_list[0]获取第一个元素
    • 可变:可随时添加、删除、修改元素,例如用append()新增元素,pop()删除末尾元素
    • 允许重复:同一元素可在列表中多次出现
  • 示例:
# 混合多种类型元素的列表
mixed_list = [10, "Python", False, (2, 3)]
# 空列表
empty_list = []

三、range() 函数说明

  • 作用:生成一个整数序列的可迭代对象,用于简化循环逻辑,默认不会直接生成列表(可通过list(range(...))转换为列表)
  • 参数用法:
    • range(stop):仅传一个参数时,生成从0到stop-1的整数序列,比如range(3)对应0, 1, 2
    • range(start, stop):传两个参数时,生成从start到stop-1的整数序列,比如range(1, 4)对应1, 2, 3
    • range(start, stop, step):传三个参数时,按指定步长step生成序列,比如range(0, 6, 2)对应0, 2, 4
  • 优势:惰性生成元素,不会一次性将所有元素加载到内存,处理大序列时更节省资源

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 11:27:08