- 此问题在此处已有答案**:
Why can't I iterate twice over the same iterator? How can I "reset" the iterator or reuse the data?(5个答案)
两年前关闭了。
下面是一些示例代码。我所要做的就是测试列表中某个项目的存在。列表是使用map函数创建的。结果是我首先打印列表。你知道为什么会发生这种情况吗?
In [20]: def f1():
...: l = map(lambda x: x+'_1', ['a', 'b', 'c'])
...: if 'a_1' in l:
...: return True
...: else:
...: return False
...:
...:
In [21]: def f2():
...: l = map(lambda x: x+'_1', ['a', 'b', 'c'])
...: print(list(l))
...: if 'a_1' in l:
...: return True
...: else:
...: return False
...:
...:
In [22]: f1()
Out[22]: True
In [23]: f2()
['a_1', 'b_1', 'c_1']
Out[23]: False
1条答案
按热度按时间wr98u20j1#
当您这样做时:
从
map
到list
的强制转换占用了你的Map,尝试调用print(list(l))
两次,你就会明白我的意思。