Что такое функции Zip и UnZip в Python?



Эта статья предоставит вам подробные и всесторонние знания о функции Zip в Python, о том, как она используется и как распаковывать.

Вы когда-нибудь задумывались, как мы можем взять по одному элементу из двух разных списков, объединить их в пару и поместить в новый список? Что ж, эта концепция помимо того, что она интересна, очень полезна во многих областях специализации. Давайте познакомимся с функцией zip в Python в следующем порядке:

Функция Zip в Python

Функция Zip в Python





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

list_A = [1, 2, 3, 4] listB = ['a', 'b', 'c', 'd'] zl = zip (listA, listB) print zl

Вывод:



[(1, ‘a’), (2, ‘b’), (3, ‘c’), (4, ‘d’)]

Zip в Python 3

В Python 3, когда мы выполняем приведенный выше код, мы не получаем тот же результат. Вместо этого мы получим:



Попробуйте!

Это связано с тем, что методы zip возвращают объект zip вместо списка. Этот zip-объект является итератором. Другими словами, возвращает единственный объект-итератор, имеющий сопоставленные значения из всех контейнеров. Итак, чтобы получить значения, мы либо конвертируем zl (из приведенного выше кода) в list, set или что-нибудь еще.

listA = [1, 2, 3, 4] listB = ['a', 'b', 'c', 'd'] zl = zip (listA, listB) zl = list (zl) print (zl)

Вывод:

[(1, ‘a’), (2, ‘b’), (3, ‘c’), (4, ‘d’)]

Распаковка в Python

Распаковка означает преобразование заархивированных значений обратно в индивидуальное состояние, как оно было. Это делается с помощью оператора «*». Итак, теперь, если мы хотим поместить старые значения в listA и listB из заархивированного списка zl, мы должны распаковать zl.

listA = [1, 2, 3, 4] listB = ['a', 'b', 'c', 'd'] #zip listA и listB и поместите их в один список zl zl = zip (listA, listB) zl = list (zl) print (zl) # unzip zl и вернуть значения в listA и listB listA, listB = zip (* zl) print (listA) print (listB)

Вывод:

[(1, ‘a’), (2, ‘b’), (3, ‘c’), (4, ‘d’)]
(1, 2, 3, 4)
(‘A’, ‘b’, ‘c’, ‘d’)

Чтобы четко понять разницу, мы берем две новые переменные и помещаем в них разархивированные данные.

listA = [1, 2, 3, 4] listB = ['a', 'b', 'c', 'd'] zl = zip (listA, listB) zl = list (zl) print (zl) listC, listD = zip (* zl) print (listC) print (listD) print (listA) print (listB)

Вывод:

разделить строку на несколько разделителей Java

[(1, ‘a’), (2, ‘b’), (3, ‘c’), (4, ‘d’)]
(1, 2, 3, 4, 5)
(‘A’, ‘b’, ‘c’, ‘d’, ‘e’)
[1, 2, 3, 4, 5]
[‘A’, ‘b’, ‘c’, ‘d’, ‘e’]

Как видите, listA и listB - это списки, а listC и listD показаны в виде кортежей, показанных в качестве вывода. Это единственная небольшая разница.

На этом мы подошли к концу статьи о функции Zip в Python. Я надеюсь, что вы хорошо усвоили концепции и, следовательно, попробовали их, чтобы быть более точными.

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев в блоге «Функция Zip в Python», и мы свяжемся с вами как можно скорее.

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