Функция zip() в Python
avatar
7 | (offline)
❤️‍🔥Notehunter Developer
Добавлено:
Категория: Основы «Python»
Комментариев: 0

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

zip() имеет множество вариантов использования. Например, это удобно, если вам нужно создать множество словарей из двух массивов, каждый из которых содержит имя и номер сотрудника.

Функция принимает итерационные элементы в качестве входных данных и возвращает итератор. Если функция zip() не получает итерируемых элементов, она возвращает пустой итератор.

Пример функции zip()

person_numbers = [23, 30, 23, 28]
person_names = ['Владислав', 'Наталья', 'Александр', 'Юлия']

zipped_values = zip(person_numbers, person_names)
zipped_list = list(zipped_values)

print(zipped_list)

Результат:

[(23, 'Владислав'), (30, 'Наталья'), (23, 'Александр'), (28, 'Юлия')]

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

Функция zip с циклом for

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

person_numbers = [23, 30, 23, 28]
person_names = ['Владислав', 'Наталья', 'Александр', 'Юлия']

for name, age in zip(person_names, person_numbers):
    print(name, age)

Результат:

Владислав 23
Наталья 30
Александр 23
Юлия 28

Давайте взглянем на возможность распаковки, функции unzip()

person_numbers = [23, 30, 23, 28]
person_names = ['Владислав', 'Наталья', 'Александр', 'Юлия']

zipped_values = zip(person_names, person_numbers)
zipped_list = list(zipped_values)

unzip_list_names, unzip_list_age = zip(*zipped_list)

print(unzip_list_names, unzip_list_age)

Получаем следующий результат в виде двух кортежей:

('Владислав', 'Наталья', 'Александр', 'Юлия') (23, 30, 23, 28)

Примечание: если исходные списки имеют разную длину, вы не получите обратно исходный список.

Теги записи: Python, Основы Python, zip(),
Комментарии к статье 0
Комментариев нет
Форма добавления комментария (необходима регистрация)