# Zip lists in Python

## Zip lists in Python

When you `zip()` together three lists containing 20 elements each, the result has twenty elements. Each element is a three-tuple.

See for yourself:

``````In [1]: a = b = c = range(20)

In [2]: zip(a, b, c)
Out[2]:
[(0, 0, 0),
(1, 1, 1),
...
(17, 17, 17),
(18, 18, 18),
(19, 19, 19)]
``````

To find out how many elements each tuple contains, you could examine the length of the first element:

``````In [3]: result = zip(a, b, c)

In [4]: len(result[0])
Out[4]: 3
``````

Of course, this wont work if the lists were empty to start with.

`zip` takes a bunch of lists likes

``````a: a1 a2 a3 a4 a5 a6 a7...
b: b1 b2 b3 b4 b5 b6 b7...
c: c1 c2 c3 c4 c5 c6 c7...
``````

and zips them into one list whose entries are 3-tuples `(ai, bi, ci)`. Imagine drawing a zipper horizontally from left to right.

#### Zip lists in Python

In Python 2.7 this might have worked fine:

``````>>> a = b = c = range(20)
>>> zip(a, b, c)
``````

But in Python 3.4 it should be (otherwise, the result will be something like `<zip object at 0x00000256124E7DC8>`):

``````>>> a = b = c = range(20)
>>> list(zip(a, b, c))
``````