2017-05-30 68 views
3

結果爲None,第二次爲list(a)。任何人都有這方面的線索?爲什麼list()與對象分別顯示不同的結果?

>>> test = {1: 2, 3: 4} 
>>> a= test.iterkeys() 
>>> list(a) 
**[1, 3]** 
>>> list(a) 
**[]** 
>>> list(a) 
[] 
+2

它是一個可迭代的,一旦你消耗了它們消失的值。 –

+2

因爲'.iterkeys'返回一個單遍迭代器。 –

回答

7

iterkeys返回迭代,其中,因爲任何迭代,可以在僅一次被迭代。

list消耗整個迭代器,所以後者不能提供更多的值,所以後續列表是空的。

相關問題