Функция zip() в Python

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

Вот пример использования функции zip():

numbers = [1, 2, 3]
letters = ['a', 'b', 'c']

# Использование zip()
zipped = zip(numbers, letters)

# Преобразование в список кортежей
zipped_list = list(zipped)
print(zipped_list)

Этот код выведет:

[(1, 'a'), (2, 'b'), (3, 'c')]

Каждый кортеж содержит одно число и одну букву, сгруппированные вместе. Если один из списков будет длиннее другого, лишние элементы этого списка не будут включены в итератор zip().

Вот несколько дополнительных примеров использования функции zip() в Python:

  1. Слияние списков в словарь:
keys = ['name', 'age', 'job']
values = ['John', 25, 'Developer']

# Слияние в словарь
dictionary = dict(zip(keys, values))
print(dictionary)

Этот код создаст словарь {'name': 'John', 'age': 25, 'job': 'Developer'}.

  1. Параллельная итерация по спискам:
names = ['Anna', 'Alex', 'Brian']
scores = [85, 91, 89]

# Параллельный вывод имени и оценки
for name, score in zip(names, scores):
    print(f"{name} has a score of {score}")

Этот код последовательно выведет пары имя-оценка для каждого студента.

  1. Распаковка кортежей:
coordinates = [(1, 2), (3, 4), (5, 6)]

# Распаковка в два списка
x, y = zip(*coordinates)
print(f"x: {x}, y: {y}")

Этот код распакует список кортежей в два отдельных списка x и y.

Функция zip() очень удобна для обработки данных в параллельных последовательностях и часто используется в различных задачах программирования.

12 views·1 share