【问题标题】:What is the inverse function of zip in python? [duplicate]python中zip的反函数是什么? [复制]
【发布时间】:2012-11-18 01:44:31
【问题描述】:

可能重复:
A Transpose/Unzip Function in Python

我使用 numpy 库中的 zip() 函数对元组进行排序,现在我有了一个包含所有元组的列表。从那以后我修改了那个列表,现在我想恢复元组,这样我就可以使用我的数据了。我该怎么做?

【问题讨论】:

    标签: python list numpy tuples


    【解决方案1】:
    lst1, lst2 = zip(*zipped_list)
    

    应该给你解压后的列表。

    *zipped_list 解压缩 zipped_list 对象。然后它将所有元组从 zipped_list 对象传递到 zip,它只是将它们打包回来,就像你传入它们时一样。

    如果:

    a = [1,2,3]
    b = [4,5,6]
    

    然后zipped_list = zip(a,b) 给你:

    [(1,4), (2,5), (3,6)]
    

    *zipped_list 还给你

    (1,4), (2,5), (3,6)
    

    使用zip(*zipped_list) 压缩它会返回两个集合:

    [(1, 2, 3), (4, 5, 6)]
    

    【讨论】:

    • 换句话说lambda x: zip(*x)是自逆的。
    • 这似乎不起作用:l1 = [1,2,3], l2 = [4,5,6];如果我打电话给a,b = zip(*zip(l1,l2)),那么a = (1,2,3) != l1 = [1,2,3](因为tuple != list
    • @FoscoLoregian a,b = map(list, zip(*zip(l1,l2)))
    • 如果您的压缩元组列表包含超过 255 个项目,Python 3.6 及更早版本不会失败吗? (因为可以传递给函数的参数的最大数量)参见:stackoverflow.com/questions/714475/…
    猜你喜欢
    • 1970-01-01
    • 2012-09-02
    • 2016-08-19
    • 1970-01-01
    • 2018-03-01
    • 2011-01-26
    • 2017-10-29
    • 2010-11-10
    • 1970-01-01
    相关资源
    最近更新 更多