我有元组的两个列表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中却没有。
啊,我找到了答案:在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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句