Функция zipв Python — это встроенная функция, которая позволяет объединять несколько итераций (например, списки, кортежи или строки) в одну итерацию путем объединения в пары соответствующих элементов из каждого входного объекта.. Результирующая итерация содержит кортежи, где i-й кортеж содержит i-й элемент из каждой входной итерации.
Вот пример использования функции zip:
numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
zipped = zip(numbers, letters)
for pair in zipped:
print(pair)
Выход:
(1, 'a')
(2, 'b')
(3, 'c')
В дополнение к базовому использованию, показанному выше, вот еще несколько методов и советов, связанных с функцией zipв Python:
- Распаковка. Вы можете разархивировать заархивированную итерацию, используя функцию
zipвместе с оператором*. Например:
pairs = [(1, 'a'), (2, 'b'), (3, 'c')]
numbers, letters = zip(*pairs)
print(numbers) # (1, 2, 3)
print(letters) # ('a', 'b', 'c')
-
Обработка неравной длины: если входные итерации имеют разную длину,
zipостанавливается, как только самая короткая итерация будет исчерпана. Все оставшиеся элементы в более длинных итерациях игнорируются. -
Объединение нескольких итераций:
zipможет принимать несколько итераций в качестве аргументов. Например:
numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
symbols = ['!', '@', '#']
combined = zip(numbers, letters, symbols)
for triplet in combined:
print(triplet)
Выход:
(1, 'a', '!')
(2, 'b', '@')
(3, 'c', '#')