我知道
但我很惊讶地发现,
range
和xrange
的区别。但我很惊讶地发现,
xrange
不是generator
,而是sequence object
。
那么它们有什么区别呢?如何创建一个sequence object
,以及在什么情况下使用它比使用generator
更好?
__getitem__
+__len__
也足以创建一个可迭代对象。 - mgilson__iter__()
返回自身并且有(__
)next
(__
)的对象。生成器只是其中的一个例子。iter([1, 2, 3])
也具有相同的属性。请注意,一旦使用过,它们就会被耗尽并且无法再使用。 - glglgla = [1, 2, 3]; for i in a: print i; for i in a: print i; b = iter(a); for i in b: print i; for i in b: print i
(将;
替换为换行符)。 - glglgl