pytutorial/python_basics/zip/README.md

44 lines
1.2 KiB
Markdown
Raw Normal View History

# zip
{:.no_toc}
<nav markdown="1" class="toc-class">
* TOC
{:toc}
</nav>
## 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) # -> <zip object at 0x7f34987f4380>
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, its 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.