为什么list()与对象分别显示不同的结果?

I a*_*... 3 python list

结果是None用list(a)第二次.任何人都有这方面的线索?

>>> test = {1: 2, 3: 4}
>>> a= test.iterkeys()
>>> list(a)
**[1, 3]**
>>> list(a)
**[]**
>>> list(a)
[]
Run Code Online (Sandbox Code Playgroud)

For*_*Bru 7

iterkeys返回一个迭代器,它作为任何迭代器只能迭代一次.

list 使用整个迭代器,以便后者不能再提供任何值,因此后续列表为空.