Python - itertools Module - zip
zip is very useful function that
itertools module has to offer along with some important ones like
chain. Zip combines items of several iterators to produce a
# itertools_zip.py for i in zip([1, 2, 3], ['a', 'b', 'c']): print(i)
This is very useful when we just want to map items without having a key of sorts.
$ python3 itertools_zip.py (1, 'a') (2, 'b') (3, 'c')
itertools also offers
zip_longest which runs till the longest iterator is exhaused.
# itertools_zip_longest.py from itertools import * r1 = range(3) r2 = range(2) print('zip stops early:') print(list(zip(r1, r2))) r1 = range(3) r2 = range(2) print('\nzip_longest processes all of the values:') print(list(zip_longest(r1, r2)))
By default, value for missing item is
None but can be changed using the optional argument -
$ python3 itertools_zip_longest.py zip stops early: [(0, 0), (1, 1)] zip_longest processes all of the values: [(0, 0), (1, 1), (2, None)]
This is part of series of articles from Python Module of the Week