Python 为什么带有对象的list()分别显示不同的结果?
第二次结果是Python 为什么带有对象的list()分别显示不同的结果?,python,list,Python,List,第二次结果是None和list(a)。有人对此有线索吗 >>> test = {1: 2, 3: 4} >>> a= test.iterkeys() >>> list(a) **[1, 3]** >>> list(a) **[]** >>> list(a) [] iterkeys返回一个迭代器,与任何迭代器一样,该迭代器只能迭代一次 list消耗整个迭代器,因此后者无法提供更多值,因此后续列表为空 它是一
None
和list(a)
。有人对此有线索吗
>>> test = {1: 2, 3: 4}
>>> a= test.iterkeys()
>>> list(a)
**[1, 3]**
>>> list(a)
**[]**
>>> list(a)
[]
iterkeys
返回一个迭代器,与任何迭代器一样,该迭代器只能迭代一次
list
消耗整个迭代器,因此后者无法提供更多值,因此后续列表为空 它是一个iterable,一旦你使用了这些值,它们就消失了。因为.iterkeys
返回一个单遍迭代器。