Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
20 Авг 2024
2 мин
6470

Работа с функцией zip в Python

Часто при работе с данными на Python возникает ситуация, когда необходимо преобразовать список кортежей в два отдельных списка, где первый список содержит

Часто при работе с данными на Python возникает ситуация, когда необходимо преобразовать список кортежей в два отдельных списка, где первый список содержит первые элементы всех кортежей, а второй — вторые элементы.

Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.

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

data = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]

Нужно преобразовать этот список в следующий формат:

result = (['a', 'b', 'c', 'd'], [1, 2, 3, 4])

В Python есть встроенная функция zip(), которая позволяет решить эту задачу.

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

x = [1, 2, 3]
y = [4, 5, 6]
zipped = zip(x, y)
print(list(zipped)) 
# Выведет: [(1, 4), (2, 5), (3, 6)]

Также функция zip() может быть использована для «расстегивания» списка кортежей обратно в отдельные списки. Для этого используется оператор «*». Он позволяет преобразовать список в набор аргументов для функции.

zipped = [(1, 4), (2, 5), (3, 6)]
x, y = zip(*zipped)
print(list(x)) 
# Выведет: [1, 2, 3]
print(list(y)) 
# Выведет: [4, 5, 6]

Таким образом, для преобразования списка кортежей в два списка можно использовать следующий код:

data = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
x, y = zip(*data)
result = (list(x), list(y))
print(result) 
# Выведет: (['a', 'b', 'c', 'd'], [1, 2, 3, 4])

В этом коде функция zip() с оператором «*» преобразует список кортежей в два отдельных кортежа. Затем каждый из этих кортежей преобразуется в список с помощью функции list().

На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий