Функция zip()
в Python - это встроенная функция, которая используется для объединения элементов из одной или более последовательностей (списков, кортежей и т. д.) во внутреннюю структуру данных, известную как объект zip
. Этот объект zip
может затем быть преобразован в список, кортеж или использоваться в цикле для обработки параллельных элементов.
Синтаксис:
zip(*iterables)
iterables
- последовательность итерируемых объектов, которые будут объединены в объект zip
. Может быть любым количеством последовательностей, включая списки, кортежи и даже строки.
Возвращаемое значение:
Функция zip()
возвращает итератор, который генерирует кортежи, содержащие элементы из каждой переданной последовательности.
zip()
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
zipped = zip(list1, list2)
print(list(zipped)) # [(1, 'a'), (2, 'b'), (3, 'c')]
В этом примере zip()
объединяет соответствующие элементы из list1
и list2
в кортежи.
list1 = [1, 2, 3]
list2 = ['a', 'b']
zipped = zip(list1, list2)
print(list(zipped)) # [(1, 'a'), (2, 'b')]
В случае, если одна из последовательностей короче другой, zip()
останавливается, когда самая короткая последовательность исчерпана.
pairs = [(1, 'a'), (2, 'b'), (3, 'c')]
numbers, letters = zip(*pairs)
print(numbers) # (1, 2, 3)
print(letters) # ('a', 'b', 'c')
При передаче объекта zip с помощью *, он разбирается на отдельные последовательности.
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
for num, letter in zip(list1, list2):
print(f'Number: {num}, Letter: {letter}')
Этот код печатает каждую пару элементов из list1
и list2
.
keys = ['a', 'b', 'c']
values = [1, 2, 3]
dictionary = dict(zip(keys, values))
print(dictionary) # {'a': 1, 'b': 2, 'c': 3}
Используя zip()
, мы можем легко создать словарь из двух списков, где элементы первого списка будут ключами, а элементы второго списка - значениями.