2024-04-19 14:07:39 发布
网友
我最近开始学习python 3。 在python 2中range()函数可用于分配列表元素。
range()
>>> A = [] >>> A = range(0,6) >>> print A [0, 1, 2, 3, 4, 5]
如在使用range()函数时,python 3中的
>>> A = [] >>> A = range(0,6) >>> print(A) range(0, 6)
为什么会这样? 为什么python要做这种改变? 是福还是祸?
Python3在很多情况下使用迭代器,其中Python2使用列表。docs给出了详细的解释,包括对range的更改。
range
优点是,如果使用大范围迭代器或映射,则不需要分配内存。 例如
for i in range(1000000000): print(i)
在python 3中需要更少的内存。 如果您碰巧希望Python一次展开列表,则可以
list_of_range = list(range(10))
在Python3中,做
A = range(0,6) A = list(A) print(A)
你会得到同样的结果。
在python 2中,range是一个内置函数。下面是来自the official python docs。它返回一个列表。
range(stop)range(start, stop[, step]) This is a versatile function to create lists containing arithmetic progressions. It is most often used in for loops.
您还可以检查^{}只存在于python 2中。它返回xrange对象,主要用于快速迭代。
xrange
xrange(stop)xrange(start, stop[, step]) This function is very similar to range(), but returns an xrange object instead of a list.
顺便说一下,python 3将这两者合并为一个range数据类型,工作方式与python 2中的xrange类似。检查the docs。
Python3在很多情况下使用迭代器,其中Python2使用列表。docs给出了详细的解释,包括对
range
的更改。优点是,如果使用大范围迭代器或映射,则不需要分配内存。 例如
在python 3中需要更少的内存。 如果您碰巧希望Python一次展开列表,则可以
在Python3中,做
你会得到同样的结果。
在python 2中,
range
是一个内置函数。下面是来自the official python docs。它返回一个列表。您还可以检查^{} 只存在于python 2中。它返回
xrange
对象,主要用于快速迭代。顺便说一下,python 3将这两者合并为一个
range
数据类型,工作方式与python 2中的xrange
类似。检查the docs。相关问题 更多 >
编程相关推荐