这个问题有点哲学.有出色的itertools
模块在Python 2,提供,特别是发电机的等同物用于Python内置功能,如map
,filter
,zip
,或slice
.和等价物被称为imap
,ifilter
,izip
,和islice
分别.据我所知,他们名字中的前缀i意味着我是演员.但是有同样的事情xrange
:它相当于range
返回生成器对象而不是大型列表.那么,为什么不叫irange
呢?前缀x实际上意味着什么?
因为xrange()
在语言具有迭代器之前就被添加到语言中,并且它本身不是迭代器。
xrange()
1993 年被添加到 Python 中。Python 1.0 于 1994 年发布,因此xrange()
很早就添加了。这里很x
可能没有特定的含义。
但它xrange()
并不是真正的迭代器,它是一个可迭代的;与迭代器不同,您可以对其进行多次迭代。它也是一个序列,因为它有长度并且可以索引。
因此,该对象已重命名为range()
(完全替换 Python 2range()
函数),并且其序列行为已进一步扩展。