Python 2:为什么xrange不称为irange?

Tig*_*uev 5 python

这个问题有点哲学.有出色的itertools模块在Python 2,提供,特别是发电机的等同物用于Python内置功能,如map,filter,zip,或slice.和等价物被称为imap,ifilter,izip,和islice分别.据我所知,他们名字中的前缀i意味着我是演员.但是有同样的事情xrange:它相当于range返回生成器对象而不是大型列表.那么,为什么不叫irange呢?前缀x实际上意味着什么?

Mar*_*ers 5

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

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

但它xrange()并不是真正的迭代器,它是一个可迭代的;与迭代器不同,您可以对其进行多次迭代。它也是一个序列,因为它有长度并且可以索引。

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