- L1 = [1,2,3,4,5]
- L2 = [5,4,3,2,1]
- print zip(L1, L2)
- # [(1, 5), (2, 4), (3, 3), (4, 2), (5, 1)]
- for (x,y) in zip(L1,L2):
- print x, '<', y, x < y
- """
- 1 < 5 True
- 2 < 4 True
- 3 < 3 False
- 4 < 2 False
- 5 < 1 False
- """
В отличие от функции map, zip не дополняет список значением None, если итерируемые объекты имеют разную длину. Она обрезает их под минимальную длину итерируемых объектов.
- L1 = [1,2,3,4,5]
- L2 = [5,4,3,2,1,0]
- print map(None, L1, L2)
- # [(1, 5), (2, 4), (3, 3), (4, 2), (5, 1), (None, 0)]
Функция zip умеет создавать словарь на основе двух списков, первый из которых - ключи, а второй - значения.
- keys = ['a', 'b', 'c']
- values = [1, 2, 3]
- print dict(zip(keys, values))
- # {'a': 1, 'c': 3, 'b': 2}
* Учебник по Python