2017-05-30 9 views
3

結果はNoneで、list(a)で2回目です。誰でもそれについての手がかりを持っていますか?オブジェクトのリスト()がそれぞれ異なる結果を表示するのはなぜですか?

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

その繰り返し可能な値は、消えてしまえば消えます。 –

+2

'.iterkeys'は単一パスのイテレータを返すためです。 –

答えて

7

iterkeys任意イテレータとして、一度だけにわたって繰り返すことができ、反復子を返します。

listはイテレータ全体を消費するので、後者はそれ以上の値を提供できないため、後続のリストは空です。

関連する問題