gpt4 book ai didi

python - `range(n, -1, -1)` 和 `reversed(range(0, n+1))` 之间有什么区别吗?

转载 作者:行者123 更新时间:2023-11-28 20:05:34 24 4
gpt4 key购买 nike

它们产生相同的结果。

>>> for i in range(10, -1, -1):
... print(i)
...
10
9
8
7
6
5
4
3
2
1
0

对比:

>>> for i in reversed(range(0, 10 + 1):
... print(i)
...
10
9
8
7
6
5
4
3
2
1
0

据我了解,Python3 的 range 创建了一个生成器,而不是将整个范围存储在内存中。 reversed 同样一次生成一个值,我想。有什么理由要用一个而不是另一个吗?

最佳答案

这是使用 timeit 的结果在两个模块上

bhargav@bhargav:~$ python -m timeit "for i in range(10, -1, -1):(i)"
1000000 loops, best of 3: 0.466 usec per loop
bhargav@bhargav:~$ python -m timeit "for i in reversed(range(0, 10 + 1)):(i)"
1000000 loops, best of 3: 0.531 usec per loop

如您所见,第二种方式较慢,因为它额外调用了函数reversed。 .

关于python - `range(n, -1, -1)` 和 `reversed(range(0, n+1))` 之间有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29592852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com