# zip {:.no_toc} ## Top Questions to [David Rotermund](mailto:davrot@uni-bremen.de) ## [zip](https://docs.python.org/3/library/functions.html#zip) ```python zip(*iterables, strict=False) ``` > Iterate over several iterables in parallel, producing tuples with an item from each one. ```python a = zip([1, 2, 3], ["sugar", "spice", "everything nice"]) print(a) # -> for item in zip([1, 2, 3], ["sugar", "spice", "everything nice"]): print(item) ``` Output: ```python (1, 'sugar') (2, 'spice') (3, 'everything nice') ``` > More formally: zip() returns an iterator of tuples, where the i-th tuple contains the i-th element from each of the argument iterables. > By default, zip() stops when the shortest iterable is exhausted. It will ignore the remaining items in the longer iterables, cutting off the result to the length of the shortest iterable > zip() is often used in cases where the iterables are assumed to be of equal length. In such cases, it’s recommended to use the strict=True option. Its output is the same as regular zip(). Unlike the default behavior, it raises a ValueError if one iterable is exhausted before the others.