range()是Python中生成整数序列的可迭代对象,需用list()转换为列表;支持单参数range(stop)、双参数range(start,stop)和三参数range(start,stop,step),可正向或反向生成序列,但仅接受整数参数。

在Python中,range() 本身不直接生成列表,而是一个可迭代对象(Python 3 中返回 range 对象,不是列表),但可以轻松配合 list() 转换为数字列表。
基本用法:生成连续整数列表
最常用的是单参数形式:range(stop),从 0 开始,到 stop(不含)结束:
-
list(range(5))→[0, 1, 2, 3, 4] -
list(range(10))→[0, 1, 2, ..., 9]
指定起始和步长:灵活控制序列
双参数 range(start, stop) 从 start 开始(含),到 stop 结束(不含);三参数 range(start, stop, step) 还可设定间隔:
-
list(range(2, 8))→[2, 3, 4, 5, 6, 7] -
list(range(0, 11, 2))→[0, 2, 4, 6, 8, 10] -
list(range(10, 0, -2))→[10, 8, 6, 4, 2](支持负步长,生成递减序列)
注意边界与常见误区
range 只接受整数参数,且当 step > 0 时,若 start >= stop,结果为空;step 时则要求 start > stop:
立即学习“Python免费学习笔记(深入)”;
-
list(range(5, 3))→[](空列表,因为默认步长为 1,5 到 3 无法递增到达) -
list(range(5, 3, -1))→[5, 4](正确写法) -
range(1.5, 5)会报错:TypeError,必须用整数
替代方案:需要真正“列表”时的优化建议
如果只是遍历数字,推荐直接用 for i in range(...),无需转成列表——更省内存;只有明确需要列表操作(如索引、切片、重复使用)时才调用 list():
- ✅ 遍历:
for i in range(100000): print(i)(高效,不占额外内存) - ✅ 存为列表再处理:
nums = list(range(1, 11)); nums.reverse() - ❌ 不必要转换:
for i in list(range(100000)):(浪费内存)
基本上就这些。记住 range() 是懒加载的、不可变的整数序列,搭配 list() 就是最简洁的数字列表生成方式。









