Python的range()函数返回一个可迭代的序列对象,常用于生成指定范围内的整数序列。它不直接生成列表,而是按需产生值,节省内存且高效。
-
基本用法
range()支持1-3个参数:range(stop)
:生成0到stop-1的整数。range(start, stop)
:生成start到stop-1的整数。range(start, stop, step)
:按步长step生成序列(可为负数)。
-
内存效率
与直接生成列表不同,range()返回惰性计算的序列对象,仅在迭代时动态生成值。例如,range(1000000)
几乎不占用内存,而list(range(1000000))
会立即分配存储空间。 -
常见应用场景
- 循环控制:
for i in range(5)
遍历固定次数。 - 列表生成:通过
list(range(1,6))
快速创建[1,2,3,4,5]。 - 索引操作:结合
len()
遍历列表索引,如for i in range(len(my_list))
。
- 循环控制:
-
注意事项
- 不可直接修改:range对象不可变,需转为列表(如
list(range(5))
)才能增删元素。 - Python 2差异:Python 2的range()直接返回列表,xrange()行为与Python 3的range()相同。
- 不可直接修改:range对象不可变,需转为列表(如
合理使用range()能提升代码性能,尤其适合处理大范围数据或循环场景。