What is the inverse function of zip in python?
74,032
lst1, lst2 = zip(*zipped_list)
should give you the unzipped list.
*zipped_list
unpacks the zipped_list object. it then passes all the tuples from the zipped_list object to zip, which just packs them back up as they were when you passed them in.
so if:
a = [1,2,3]
b = [4,5,6]
then zipped_list = zip(a,b)
gives you:
[(1,4), (2,5), (3,6)]
and *zipped_list
gives you back
(1,4), (2,5), (3,6)
zipping that with zip(*zipped_list)
gives you back the two collections:
[(1, 2, 3), (4, 5, 6)]
Related videos on Youtube
Author by
user17151
Updated on July 08, 2022Comments
-
user17151 almost 2 years
Possible Duplicate:
A Transpose/Unzip Function in PythonI've used the zip() function from the numpy library to sort tuples and now I have a list containing all the tuples. I had since modified that list and now I would like to restore the tuples so I can use my data. How can I do this?
-
jwg almost 7 yearsIn other words
lambda x: zip(*x)
is self-inverse. -
fosco over 5 yearsThis doesn't seem to be working:
l1 = [1,2,3]
,l2 = [4,5,6]
; if I calla,b = zip(*zip(l1,l2))
, thena = (1,2,3) != l1 = [1,2,3]
(because tuple != list) -
JLDiaz over 5 years@FoscoLoregian
a,b = map(list, zip(*zip(l1,l2)))
-
Omer Tuchfeld almost 5 yearsSee also stackoverflow.com/a/6473724/791430
-
John Smith Optional almost 4 yearsWouldn't it fail for Python version 3.6 and older as soon as your list of zipped tuples contains more than 255 items ? (because of the maximum numbers of arguments that can be passed to a function) See: stackoverflow.com/questions/714475/…
-
Adam Selker almost 3 yearsNo, because the limit of 255 doesn't apply when you expand args using *; see Chris Colbert's answer to stackoverflow.com/questions/714475/…
-
SomethingSomething almost 3 yearsI might mention the fact that you can look at the
zip
function and notice that it is almost naturally the inverse of itself -
daruma over 2 yearshaving an unzip function would have been nice (even if just an alias of zip...)
-
mueslo about 2 yearsThis answer is not quite complete, if you start with two empty lists you will not get them back.
-
Fırat Kıyak almost 2 yearsI thought that this method would work slowly but it actually worked better than all the other ways I imagined. Why is this so fast?