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()删除末尾元素 - 允许重复:同一元素可在列表中多次出现
- 有序:每个元素对应唯一索引(从0开始计数),可通过索引直接访问元素,比如
- 示例:
# 混合多种类型元素的列表 mixed_list = [10, "Python", False, (2, 3)] # 空列表 empty_list = []
三、range() 函数说明
- 作用:生成一个整数序列的可迭代对象,用于简化循环逻辑,默认不会直接生成列表(可通过
list(range(...))转换为列表) - 参数用法:
range(stop):仅传一个参数时,生成从0到stop-1的整数序列,比如range(3)对应0, 1, 2range(start, stop):传两个参数时,生成从start到stop-1的整数序列,比如range(1, 4)对应1, 2, 3range(start, stop, step):传三个参数时,按指定步长step生成序列,比如range(0, 6, 2)对应0, 2, 4
- 优势:惰性生成元素,不会一次性将所有元素加载到内存,处理大序列时更节省资源
内容的提问来源于stack exchange,提问作者Gary
相关产品推荐
相关产品推荐

