Что делает функция zip в Python?

Аватар пользователя Карина Абдуллаева
Карина Абдуллаева
09 ноября 2022

Функция zip() принимает на входе несколько итерируемых объектов (iterable) или итераторов (iterators) и поэлементно группирует в кортежи. Функция останавливается, когда заканчиваются элементы в одном из источников. Относится к неперезапускаемым генераторам.

Пример:

user_names = ['Anna', 'Bob', 'Claire', 'Daniel']
user_age = [20, 25, 30]
zipped_values = zip(user_names, user_age)

print(list(zipped_values)) # => [('Anna', 20), ('Bob', 25), ('Claire', 30)]
# для Daniel возраста не осталось, функция остановилась
print(list(zipped_values)) # => []
# т.к. функция неперазапускаемая, повторный вызов вернул пустой список
4 0
Аватар пользователя Olga Pejenkova
Olga Pejenkova
10 июня 2024

Функция zip() в Python используется для одновременной итерации по нескольким итерируемым объектам (например, спискам, кортежам, строкам) параллельно. Она создает итератор, который генерирует кортежи, состоящие из соответствующих элементов из каждого итерируемого объекта.

Важные моменты:

  • Длина итератора: Итератор, созданный zip(), будет иметь длину, равную длине самого короткого итерируемого объекта, переданного в функцию.
  • Разные типы данных: zip() может работать с итерируемыми объектами разных типов данных.
  • Создание словарей: zip() часто используется для создания словарей из двух списков, где один список содержит ключи, а другой - значения.

Пример с разной длиной итераторов:

list1 = [1, 2, 3]
list2 = ['a', 'b']

for x, y in zip(list1, list2):
  print(x, y)

# => 1 a
# => 2 b

В этом случае, так как list2 короче, чем list1, итерация прекращается после достижения конца list2

2 0