什么是 <class 'range'>

Viv*_*vek 5 python range python-2.7 python-3.x

蟒蛇3:

string = range(10)
print("{}".format(type(string)))
Run Code Online (Sandbox Code Playgroud)

输出:

class 'range'
Run Code Online (Sandbox Code Playgroud)

我只是对这个类的“范围”感到好奇。谁能解释一下?

但是在 Python2 中:

输出:

class 'list'
Run Code Online (Sandbox Code Playgroud)

嗯,这是不言自明的

Jim*_*ard 5

在Python 2中range(val)生成一个列表的实例,它只是一个函数。从而type(range(10))回归class 'list'

在 Python 中3range相当于xrange在 Python 2 中,它返回名为 的新类的实例range。有关 Python 2/3 之间的更多更改/差异,请参阅PEP 3100


Mur*_*nik 5

Python 3 添加了一个新range类来有效处理“不可变的数字序列”(类似于 Python 2 的xrange)。Python 2 没有这样的范围类,因此该range函数仅返回一个列表。