在python中zip的反函数是什么?

use*_*151 148 python tuples numpy list

可能重复:
Python中的转置/解压缩功能

我使用numpy库中的zip()函数来排序元组,现在我有一个包含所有元组的列表.我已经修改了该列表,现在我想恢复元组,以便我可以使用我的数据.我怎样才能做到这一点?

Mik*_*ran 297

lst1, lst2 = zip(*zipped_list)
Run Code Online (Sandbox Code Playgroud)

应该给你解压缩列表.

*zipped_list解压缩zipped_list对象.然后它将zipped_list对象中的所有元组传递给zip,它只是将它们打包回来,就像它们传递它们时一样.

因此,如果:

a = [1,2,3]
b = [4,5,6]
Run Code Online (Sandbox Code Playgroud)

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

[(1,4), (2,5), (3,6)]
Run Code Online (Sandbox Code Playgroud)

*zipped_list回报你

(1,4), (2,5), (3,6)
Run Code Online (Sandbox Code Playgroud)

压缩它可以zip(*zipped_list)为您提供两个集合:

[(1, 2, 3), (4, 5, 6)]
Run Code Online (Sandbox Code Playgroud)

  • 换句话说,`lambda x:zip(*x)`是自反的. (21认同)
  • 这个答案并不完全完整,如果您从两个空列表开始,您将无法取回它们。 (4认同)
  • @FoscoLoregian `a,b = map(list, zip(*zip(l1,l2)))` (3认同)
  • 这似乎不起作用:`l1 = [1,2,3]`,`l2 = [4,5,6]`; 如果我称`a,b = zip(*zip(l1,l2))`,那么`a =(1,2,3)!= l1 = [1,2,3]`(因为[元组!=列表] ](/sf/ask/43873161/)) (2认同)
  • 当你的压缩元组列表包含超过 255 个项目时,Python 3.6 及更早版本不会失败吗?(因为可以传递给函数的参数的最大数量)请参阅:/sf/ask/50013281/功能 (2认同)
  • 如果有一个 unzip 函数就好了(即使只是 zip 的别名......) (2认同)