关键字-range
# range
内置函数 range() 常用于遍历数字序列,该函数可以生成算术级数:
for i in range(5):
print(i)
"""
0
1
2
3
4
"""
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
生成的序列不包含给定的终止数值;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]
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
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
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
不过,大多数情况下,enumerate() 函数更便捷,详见 循环的技巧 (opens new window) 。
如果只输出 range,会出现意想不到的结果:
**>>>** range(10)
range(0, 10)
1
2
2
range()返回对象的操作和列表很像,但其实这两种对象不是一回事。迭代时,该对象基于所需序列返回连续项,并没有生成真正的列表,从而节省了空间。
这种对象称为可迭代对象 iterable (opens new window),函数或程序结构可通过该对象获取连续项,直到所有元素全部迭代完毕。[for](https://docs.python.org/zh-cn/3/reference/compound_stmts.html#for)
语句就是这样的架构,[sum()](https://docs.python.org/zh-cn/3/library/functions.html#sum)
是一种把可迭代对象作为参数的函数:
sum(range(4)) *# 0 + 1 + 2 + 3*6
1
编辑 (opens new window)
上次更新: 2023/05/17, 23:08:21