Python 2:为什么xrange被称为橙色?

时间:2014-04-05 19:22:21

标签: python

这个问题有点哲学。 Python 2中有一个出色的itertools模块,特别是为Python内置函数提供生成器等价物,如mapfilterzip或{{1} }。等价物分别称为sliceimapifilterizip。据我了解,名称中的前缀 i 表示 i terator。但是islice有同样的事情:它相当于xrange返回生成器对象而不是大型列表。那么,为什么它不被称为range?前缀 x 的实际含义是什么?

1 个答案:

答案 0 :(得分:4)

因为xrange()在它具有迭代器之前被添加到语言中,并且它本身不是迭代器。

Python 1.0于1994年发布,因此很早就添加了xrange()x很可能在这里没有特定含义。

但是xrange()实际上不是迭代器,它是可迭代的;与迭代器不同,您可以多次迭代它。它也是一个序列,因为它有一个长度并且可以被索引。

因此,该对象已重命名为range()(完全替换Python 2 range()函数),并且其序列行为已进一步扩展。