Функция 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:
- Слияние списков в словарь:
keys = ['name', 'age', 'job'] values = ['John', 25, 'Developer'] # Слияние в словарь dictionary = dict(zip(keys, values)) print(dictionary)
Этот код создаст словарь {'name': 'John', 'age': 25, 'job': 'Developer'}.
- Параллельная итерация по спискам:
names = ['Anna', 'Alex', 'Brian']
scores = [85, 91, 89]
# Параллельный вывод имени и оценки
for name, score in zip(names, scores):
print(f"{name} has a score of {score}")
Этот код последовательно выведет пары имя-оценка для каждого студента.
- Распаковка кортежей:
coordinates = [(1, 2), (3, 4), (5, 6)]
# Распаковка в два списка
x, y = zip(*coordinates)
print(f"x: {x}, y: {y}")
Этот код распакует список кортежей в два отдельных списка x и y.
Функция zip() очень удобна для обработки данных в параллельных последовательностях и часто используется в различных задачах программирования.
