我最近开始学习python 3。
在 python 2 中,range()
函数可用于分配列表元素:
>>> A = []
>>> A = range(0,6)
>>> print A
[0, 1, 2, 3, 4, 5]
但是在 python 3 中,range()
函数输出如下:
>>> A = []
>>> A = range(0,6)
>>> print(A)
range(0, 6)
为什么会这样?
为什么 python 会做这个改变?
这是福音还是祸害?
最佳答案
Python 3 使用迭代器 来处理很多python 2 使用列表 的事情。docs给出详细的解释,包括对 range
的更改。
优点是如果您使用大范围迭代器或映射,Python 3 不需要分配内存。 例如
for i in range(1000000000): print(i)
在 python 3 中需要更少的内存。 如果您碰巧希望 Python 一次展开所有列表,您可以
list_of_range = list(range(10))
关于Python 3 范围与 Python 2 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44571718/