Python 3 zip列表解压缩

Bastelflp

我有元组的两个列表mkp1mkp2zip,并希望以后解开他们的列表。但是在打开第一部分的包装后,其余部分就消失了……为什么?

最小示例:

# 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中却没有。

Bastelflp

啊,我找到了答案:在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章