[英]Python 2: why xrange isn't called irange?
这个问题是哲学上的。 Python 2中有出色的itertools
模块,尤其为Python内置函数(例如map
, filter
, zip
或slice
提供了等效的生成filter
。 等效项分别称为imap
, ifilter
, izip
和islice
。 据我了解,它们名称中的前缀i表示i 。 但有同样的事情xrange
:它的等效range
返回发生器对象,而不是大名单。 那么,为什么不叫irange
呢? 前缀x实际上是什么意思?
因为xrange()
是在它具有迭代器之前添加到语言的,所以它本身不是迭代器。
xrange()
于1993年添加到Python中 。 Python 1.0于1994年发布,因此xrange()
很早就添加了。 x
很可能在这里没有特定含义。
但是xrange()
并不是真正的迭代器,它是可迭代的 ; 与迭代器不同,您可以对其进行多次迭代。 它也是一个序列,因为它具有长度并且可以被索引。
这样,该对象已重命名为range()
(完全取代了Python 2 range()
函数),并且其序列行为得到了进一步扩展。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.