Някога чудили ли сте се как можем да вземем по един елемент от два различни списъка и да ги направим като двойка и да ги поставим в нов списък? Е, тази концепция, освен че е интересна, е много полезна в много области на специализация. Нека се запознаем с функцията 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“)]
заплата за разработчици на Java в Индия
Zip в Python 3
В Python 3, когато изпълним горния код, няма да получим същия резултат. Вместо това ще получим:
Опитай го!
Това е така, защото zip методите връщат zip обект вместо списък. Този zip обект е итератор. С други думи, връща един обект на итератор, след като е картографирал стойности от всички контейнери. Така че, за да получим стойностите, ние или конвертираме zl (от горния код) в списък, набор или нещо друго.
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)
Изход:
[(1, „a“), (2, „b“), (3, „c“), (4, „d“)]
(1, 2, 3, 4, 5)
('а б В Г Д')
[1, 2, 3, 4, 5]
['а б В Г Д']
Както можете да видите, listA и listB са списъци, а listC и listD са показани като кортежи, показани като изход. Това е единствената малка разлика.
С това стигнахме до края на тази Zip функция в статията на Python. Надявам се, че сте научили добре понятията и затова го изпробвайте, за да бъдете по-точни.
функция на Фибоначи c ++
Имате въпрос към нас? Моля, споменете го в раздела за коментари на този блог „Zip функция в Python“ и ние ще се свържем с вас възможно най-скоро.
За да получите задълбочени познания за Python заедно с различните му приложения, можете с нашето онлайн обучение на живо с 24/7 поддръжка и доживотен достъп.