找回密码
 立即注册
搜索
到手67.99元!阿里云轻量2核2G云服务器
查看: 27|回复: 0

range() 函数

[复制链接]

696

主题

0

回帖

11

积分

管理员

积分
11
发表于 2026-4-15 15:58:27 | 显示全部楼层 |阅读模式
内置函数 range() 用于生成等差数列:

for i in range(5):
    print(i)

0
1
2
3
4
生成的序列绝不会包括给定的终止值;range(10) 生成 10 个值——长度为 10 的序列的所有合法索引。range 可以不从 0 开始,且可以按给定的步长递增(即使是负数步长):

list(range(5, 10))
[5, 6, 7, 8, 9]

list(range(0, 10, 3))
[0, 3, 6, 9]

list(range(-10, -100, -30))
[-10, -40, -70]
要按索引迭代序列,可以组合使用 range() 和 len():

a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
    print(i, a[i])

0 Mary
1 had
2 a
3 little
4 lamb
不过大多数情况下 enumerate() 函数很方便,详见 循环的技巧。

如果直接打印一个 range 会发生意想不到的事情:

range(10)
range(0, 10)
range() 返回的对象在很多方面和列表的行为一样,但其实它和列表不一样。该对象只有在被迭代时才一个一个地返回所期望的列表项,并没有真正生成过一个含有全部项的列表,从而节省了空间。

这种对象称为可迭代对象 iterable,适合作为需要获取一系列值的函数或程序构件的参数。for 语句就是这样的程序构件;以可迭代对象作为参数的函数例如 sum():

sum(range(4))  # 0 + 1 + 2 + 3
6
后续我们会看到更多返回可迭代对象并以可迭代对象作为参数的函数。 在 数据结构 一章中,我们将讨论 list() 的更多细节。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|skypiea

GMT+8, 2026-6-27 05:19 , Processed in 0.041615 second(s), 20 queries .

Powered by skypiea

快速回复 返回顶部 返回列表