我正在学习python,我遇到了一个我不知道为什么
的问题>>> a = [1,2,3,4]
>>> b = reversed(a)
>>> list(b)
[4, 3, 2, 1]
>>> list(b)
[]
为什么我第二次调用list(b)它返回一个空列表
答案 0 :(得分:0)
原因是b
不是反转列表本身,而是listreverseiterator
。因此,当您第一次调用list()
时,它将迭代b
并从该迭代器的输出项创建一个新列表。当你第二次这样做时,b
仍然是原始迭代器,并且已经遍历了所有项目,所以它不会迭代任何东西,导致一个空列表