Python range()
函数
原文: https://thepythonguru.com/python-builtin-functions/range/
于 2020 年 1 月 7 日更新
range()
函数用于随时间生成一系列数字。 简单地说,它接受一个整数并返回一个范围对象(一种可迭代的类型)。 在 Python 2 中,range()
返回一个list
,它对处理大数据不是很有效。
range()
函数的语法如下:
语法:
range([start,] stop [, step]) -> range object
参数 | 描述 |
---|---|
start |
(可选)序列的起点。 默认为0 。 |
stop (必填) |
序列的端点。 该项目将不包括在序列中。 |
step (可选) |
序列的步长。 默认为1 。 |
现在让我们看几个示例,以了解range()
的工作方式:
示例 1:
>>>
>>> range(5)
range(0, 5)
>>>
>>> list(range(5)) # list() call is not required in Python 2
[0, 1, 2, 3, 4]
>>>
试试看:
print(range(5))
# list() call is not required in Python 2
print(list(range(5)))
当使用单个参数调用range()
时,它将生成从0
到指定参数(但不包括它)的数字序列。 因此,序列中不包含数字5
。
示例 2:
>>>
>>> range(5, 10)
range(5, 10)
>>>
>>> list(range(5, 10))
[5, 6, 7, 8, 9]
>>>
试一试:
print(range(5, 10))
print(list(range(5, 10)))
在这里range()
用两个参数5
和10
调用。 结果,它将生成从5
到10
(但不包括10
)的数字序列。
您还可以指定负数:
>>>
>>> list(range(-2, 2))
[-2, -1, 0, 1]
>>>
>>> list(range(-100, -95))
[-100, -99, -98, -97, -96]
>>>
试一试:
print(list(range(-2, 2)))
print(list(range(-100, -95)))
示例 3:
>>>
>>> range(1, 20, 3)
range(1, 20, 3)
>>>
>>>
>>> list(range(1, 20, 3))
[1, 4, 7, 10, 13, 16, 19]
>>>
试一试:
print( range(1, 20, 3))
print(list(range(1, 20, 3)))
在这里range()
函数被3
的step
参数调用,因此它将每隔三个元素从1
返回到20
(当然不包括20
)。
您也可以使用步骤参数来倒数。
>>>
>>> list(range(20, 10, -1))
[20, 19, 18, 17, 16, 15, 14, 13, 12, 11]
>>>
>>> list(range(20, 10, -5))
[20, 15]
>>>
试一试:
print(list(range(20, 10, -1)))
print(list(range(20, 10, -5)))
range()
函数通常与for
循环一起使用以重复执行一定次数的操作。 例如,在下面的清单中,我们使用range()
执行循环主体 5 次。
>>>
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
>>>
试一试:
for i in range(5):
print(i)
该代码在功能上等同于以下代码:
>>>
>>> for i in [0, 1, 2, 3, 4]:
... print(i)
...
0
1
2
3
4
>>>
但是,在实际代码中,应始终使用range()
,因为它简洁,灵活且性能更好。