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)]
Share:
74,032

Related videos on Youtube

user17151
Author by

user17151

Updated on July 08, 2022

Comments

  • user17151
    user17151 almost 2 years

    Possible Duplicate:
    A Transpose/Unzip Function in Python

    I'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
    jwg almost 7 years
    In other words lambda x: zip(*x) is self-inverse.
  • fosco
    fosco over 5 years
    This doesn't seem to be working: l1 = [1,2,3], l2 = [4,5,6]; if I call a,b = zip(*zip(l1,l2)), then a = (1,2,3) != l1 = [1,2,3] (because tuple != list)
  • JLDiaz
    JLDiaz over 5 years
    @FoscoLoregian a,b = map(list, zip(*zip(l1,l2)))
  • Omer Tuchfeld
    Omer Tuchfeld almost 5 years
  • John Smith Optional
    John Smith Optional almost 4 years
    Wouldn'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
    Adam Selker almost 3 years
    No, because the limit of 255 doesn't apply when you expand args using *; see Chris Colbert's answer to stackoverflow.com/questions/714475/…
  • SomethingSomething
    SomethingSomething almost 3 years
    I might mention the fact that you can look at the zip function and notice that it is almost naturally the inverse of itself
  • daruma
    daruma over 2 years
    having an unzip function would have been nice (even if just an alias of zip...)
  • mueslo
    mueslo about 2 years
    This answer is not quite complete, if you start with two empty lists you will not get them back.
  • Fırat Kıyak
    Fırat Kıyak almost 2 years
    I thought that this method would work slowly but it actually worked better than all the other ways I imagined. Why is this so fast?