python – 为什么带有对象的list()分别显示不同的结果?

参见英文答案 >
Why can’t I iterate twice over the same data?                                    3个

结果是无,列表(a)是第二次.任何人都有这方面的线索?

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

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

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

点赞