list - 列表 python 3范围 vs python 2范围

我最近开始学习 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 要做这种更改?
是a 还是 bane?

时间:

Python 3使用迭代器来处理Python 2使用列表的很多东西。文档给出了详细的解释,包括范围的变化。

如果使用大范围迭代器或者映射, Python 3不需要分配内存。 例如


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



python 3需要更少的内存。 如果确实希望 python 立即展开列表,则可以


list_of_range = list(range(10))



在 python 2中,range 是内置函数。 下面是官方 python 文档。 它返回一个列表。

范围 ( 停止)
范围 ( 启动,停止 [, step] )
这是一个通用函数,用于创建包含算术顺序的列表。 它最常用于循环。

你也可以检查 xrange 只存在于 python 2中。 它返回 xrange 对象,主要用于快速迭代。

x ( 停止)
x ( 启动,停止 [, step] )
这里函数与范围( ) 非常相似,但返回一个xrange对象,而不是列表。

顺便说一下,python 3将这两种类型合并为一个 range 数据类型,在 python 2中使用类似的xrange 。 查看这个文档。

...