3
结果为None
,第二次为list(a)
。任何人都有这方面的线索?为什么list()与对象分别显示不同的结果?
>>> test = {1: 2, 3: 4}
>>> a= test.iterkeys()
>>> list(a)
**[1, 3]**
>>> list(a)
**[]**
>>> list(a)
[]
结果为None
,第二次为list(a)
。任何人都有这方面的线索?为什么list()与对象分别显示不同的结果?
>>> test = {1: 2, 3: 4}
>>> a= test.iterkeys()
>>> list(a)
**[1, 3]**
>>> list(a)
**[]**
>>> list(a)
[]
iterkeys
返回迭代,其中,因为任何迭代,可以在仅一次被迭代。
list
消耗整个迭代器,所以后者不能提供更多的值,所以后续列表是空的。
它是一个可迭代的,一旦你消耗了它们消失的值。 –
因为'.iterkeys'返回一个单遍迭代器。 –