python 什么是< class 'range'>

tkqqtvp1  于 5个月前  发布在  Python
关注(0)|答案(3)|浏览(61)

Python 3:

string = range(10)
print("{}".format(type(string)))

字符串
输出:

class 'range'


我只是好奇这个职业的范围。谁能解释一下?
Python 2:
输出:

class 'list'


这是不言自明的

wbgh16ku

wbgh16ku1#

Python 3添加了一个新的range类来有效地处理“不可变的数字序列”(类似于Python 2的xrange)。Python 2没有这样的range类,所以range函数只是返回一个列表。

eanckbw9

eanckbw92#

在Python 2中,range(val)生成一个列表的示例,它只是一个函数。因此type(range(10))将返回class 'list'
在Python 3中,range相当于Python 2中的xrange,它返回一个名为range的新类的示例。有关Python 2/3之间的更多更改/差异,请参阅PEP 3100

mepcadol

mepcadol3#

Python 3的主要区别(摘自https://docs.python.org/3/library/stdtypes.html#range)
range类型相对于常规列表或元组的优点是,range对象将始终占用相同(少量)的内存,无论它表示的范围大小如何(因为它只存储开始,停止和步长值,并根据需要计算单个项和子范围)。

相关问题