【问题标题】:Python 3 zip list unpacking [duplicate]Python 3 zip列表解包[重复]
【发布时间】:2016-03-18 14:56:45
【问题描述】:

我有两个元组列表 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 中却没有。

【问题讨论】:

    标签: python python-3.x list zip python-3.4


    【解决方案1】:

    啊,我找到了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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-06
      • 2015-10-19
      • 1970-01-01
      • 2015-10-16
      • 2011-06-15
      • 1970-01-01
      • 2020-12-23
      相关资源
      最近更新 更多