我有两个元组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中没有。
答案 0 :(得分:2)
啊,我找到了answer:在Python 2中,zip返回一个元组列表,而在Python 3中它返回一个迭代器。这导致第二次迭代导致空列表。
这有效:
# 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, p2 = [], []
for kpp in pairs:
p1.append(kpp[0])
p2.append(kpp[1])
print('p1:', p1)
print('p2:', p2)