Python 里的 range 是干嘛的?

一、range 是干嘛的?

range() 用来生成一个整数序列 ,常用于 for 循环。

python 复制代码
for i in range(5):
    print(i)

输出:

复制代码
0
1
2
3
4

二、三种用法

① 一个参数

python 复制代码
range(stop)

表示:从 0 开始,到 stop 结束(不包含 stop)

python 复制代码
range(5)

= 0,1,2,3,4


② 两个参数

python 复制代码
range(start, stop)

从 start 到 stop(不包含 stop)

python 复制代码
range(2, 6)

= 2,3,4,5


③ 三个参数

python 复制代码
range(start, stop, step)

step 是步长

python 复制代码
range(0, 10, 2)

= 0,2,4,6,8


三、倒序写法

python 复制代码
range(10, 0, -1)

输出:

复制代码
10,9,8,7,6,5,4,3,2,1

⚠ 注意:

  • step 必须为负数
  • stop 依然不包含

四、range 的重要特性(很多人不知道)

1️⃣ 不是真正的列表

python 复制代码
print(range(5))

输出:

复制代码
range(0, 5)

它是一个惰性对象(lazy object)

不会一次性生成所有数字,节省内存。

如果你要变成列表:

python 复制代码
list(range(5))

2️⃣ 占用内存极小

python 复制代码
range(1000000000)

不会爆内存。

因为它只存:

  • start
  • stop
  • step

五、常见用法

① 控制循环次数

python 复制代码
for _ in range(10):
    print("hello")

② 用索引遍历列表(但不推荐)

python 复制代码
nums = [10, 20, 30]

for i in range(len(nums)):
    print(nums[i])

更推荐:

python 复制代码
for num in nums:
    print(num)

③ 同时拿索引和值(推荐)

python 复制代码
for i, value in enumerate(nums):
    print(i, value)

六、常见坑

❌ 1. 不包含 stop

python 复制代码
range(1, 5)

不是 1 到 5

是 1 到 4


❌ 2. 步长方向错误

python 复制代码
range(5, 1)

结果是空!

因为默认 step = +1

正确写法:

python 复制代码
range(5, 1, -1)

七、面试常考点

Q:range 是列表吗?

答:不是,是一个可迭代对象。

Q:range 占内存大吗?

答:不会,它是惰性的。


八、进阶小知识(Python 3)

range 支持:

python 复制代码
5 in range(10)   # True

因为它支持 O(1) 判断,不会遍历。

相关推荐
广州山泉婚姻3 小时前
Python序列号源码分析
python
HEJOO93 小时前
深入理解 Java volatile 关键字:原理、用法与常见误区
java·开发语言·spring
曹牧3 小时前
Java:no content to map due to end of input
java·开发语言
计算机源码社4 小时前
【大数据项目实战】基于大数据的影视内容生态综合质量分析与可视化-基于数据挖掘的影视内容类型共现与口碑聚类分析系统
大数据·人工智能·python·数据挖掘·数据分析·毕业设计·课程设计
梦梦代码精4 小时前
《回收租赁系统技术选型避坑指南:业务闭环与二开自由度详解》
开发语言·低代码·docker·开源·代码规范
C^h4 小时前
pytorch 适合初学者 0基础学习
人工智能·pytorch·python
隔窗听雨眠4 小时前
记一次SQL Server数据库性能分析:从CPU100%到单配置修复的完整诊断
开发语言·数据库·php
David猪大卫4 小时前
【C++修炼】智能指针使用及原理
开发语言·c++·经验分享·笔记·学习·考研·面试
charlie1145141914 小时前
现代Qt开发之图像处理进阶:像素操作与格式转换
开发语言·图像处理·qt
李永奉4 小时前
中科蓝讯SDK开发-BT893x 面条耳机连接vivo手机后连接APP端,最后手机端设置页面手动断开蓝牙连接,此时耳机端假断开
c语言·开发语言·嵌入式硬件·物联网·智能手机·电脑