- 此问题在此处已有答案**:
Why can't I iterate twice over the same iterator? How can I "reset" the iterator or reuse the data?(6个答案)
七年前就关门了。
我有两个元组的列表mkp1
和mkp2
,我zip
并想稍后将它们解包到列表中。但是在第一部分解包之后,剩下的就不见了...为什么?
最小示例:
# list of tuples
mkp1 = [(1, 2), (3, 4), (5, 6)]
mkp2 = [(10, 20), (30, 40), (50, 60)]
# zip this list
pairs = zip(mkp1, mkp2)
# unzip this list
p1 = [kpp[0] for kpp in pairs]
p2 = [kpp[1] for kpp in pairs]
print('p1:', p1)
print('p2:', p2)
编辑:奇怪的是,这在Python 2.7中的工作原理和我预期的一样,但在Python 3.4中却不同。
1条答案
按热度按时间rta7y2nd1#
啊,我找到了answer:在Python 2中,zip返回一个元组列表,而在Python 3中它返回一个迭代器,这导致第二次迭代导致一个空列表。
这是可行的: