On Wed, Jan 18, 2012 at 10:31 AM, Rodrick Brown <rodrick.br...@gmail.com> wrote: > > > On Wed, Jan 18, 2012 at 10:27 AM, Alec Taylor <alec.tayl...@gmail.com> > wrote: >> >> http://docs.python.org/library/functions.html >> >>> x = [1, 2, 3] >> >>> y = [4, 5, 6] >> >>> zipped = zip(x, y) >> >>> zipped >> [(1, 4), (2, 5), (3, 6)] >> >>> x2, y2 = zip(*zipped) >> >>> x == list(x2) and y == list(y2) >> True > > > Alec can you explain this behavior zip(*zipped)?
Zip is its own inverse. >>> zip([1,2,3],[4,5,6]) [(1, 4), (2, 5), (3, 6)] >>> zip((1,4),(2,5),(3,6)) [(1, 2, 3), (4, 5, 6)] If you're not sure of the *zipped part, it just means treat each element of zipped as a different argument to zip. So zip(*zipped) is calling zip(zipped[0], zipped[1]... zipped[-1]) -- http://mail.python.org/mailman/listinfo/python-list