Питхон

Како се користи Зип функција у Питхону

Како се користи Зип функција у Питхону
Овај чланак ће обрадити водич о функцији „зип“ доступан у Питхоновој стандардној библиотеци модула. Ова метода вам омогућава да комбинујете и упарите елементе више објеката који се могу поновити. Затим можете покренути даљу логику на овим паровима. У многим случајевима је употреба функције „зип“ много ефикаснија и чишћа од употребе више угнежђених петљи „фор“.

О Зип функцији

Као што је раније речено, функција „зип“ се користи за стварање парова од елемената вишеструких итерабилних објеката. Размотрите пример у наставку да бисте разумели основну синтаксу и употребу зип функције:

лист1 = ["а", "б", "ц"]
лист2 = ["јабука", "лопта", "мачка"]
зипован = зип (лист1, лист2)
испис (листа (зипована))

Прве две изјаве у горњем узорку кода дефинишу две листе које садрже неке елементе. Даље, функција „зип“ се користи предавањем променљивих „лист1“ и „лист2“ као аргумената. Ово је главна синтакса функције „зип“. Морате само да проследите листе или друге ваљане уређене итерабле као аргументе чије елементе желите да комбинујете. На крају, испис за испис се користи за добијање резултата променљиве „зиповано“. Након покретања горе поменутог узорка кода, требали бисте добити следећи излаз:

[('а', 'јабука'), ('б', 'лопта'), ('ц', 'мачка')]

Имајте на уму да функција „зип“ враћа објект типа „зип“, а не листу. Морате га претворити у итерабилни тип, као што је приказано у горњој изјави за штампу.

Једноставно речено, функција „зип“ преузима елементе истог индекса са две листе и комбинује их као пар у корпици. Дакле, 0. елемент из „лист1“ комбинован је са 0. елементом „листе2“, 1. елемент из „листе1“ комбинован је са 1. елементом „листе2“ и тако даље. Зип функција се помера слева удесно и корпица која садржи упарене елементе има исти индекс као и елементи који су у њима сачувани.

Коришћење ЗИП-а када интерактивне компоненте немају исти број елемената

У горе наведеном примеру, обе листе имају једнак број елемената. У случају да имате посла са неким кодом где обе листе немају исти број елемената, функција „зип” зауставит ће се на посљедњем елементу листе с најмањим бројем елемената.

У доњем примеру, функција „зип“ зауставиће се на елементу „ц“, без обзира што „лист2“ има још један елемент.

лист1 = ["а", "б", "ц"]
лист2 = ["јабука", "лопта", "мачка", "лутка"]
зипован = зип (лист1, лист2)
испис (листа (зипована))

Након покретања горе поменутог узорка кода, требали бисте добити следећи излаз:

[('а', 'јабука'), ('б', 'лопта'), ('ц', 'мачка')]

Када користите функцију зип, можете користити више од две интерактивне материје

Обично се функција „зип“ користи за поређење два итерабилна објекта. Међутим, можете додати било који број итерабилних датотека као аргументе функцији „зип“. И даље ће бити примењив принцип заустављања на последњем елементу најкраће листе.

лист1 = ["а", "б", "ц"]
лист2 = ["јабука", "лопта", "мачка", "лутка"]
лист3 = ["5", "3"]
зипован = зип (лист1, лист2, лист3)
испис (листа (зипована))

Након покретања горе поменутог узорка кода, требали бисте добити следећи резултат:

[('а', 'јабука', '5'), ('б', 'лопта', '3')]

Креирање појединачних спискова од објекта типа Зип

Ако већ имате „зип“ објекат, можете га користити за поновно насељавање појединачних спискова који су раније коришћени када је зип функција први пут на њима позвана.

лист1 = ["а", "б", "ц"]
лист2 = ["јабука", "лопта", "мачка", "лутка"]
лист3 = ["5", "3"]
зипован = зип (лист1, лист2, лист3)
л1, л2, л3 = зип (* зипован)
испис (листа (л1), листа (л2), листа (л3))

Након покретања горе поменутог узорка кода, требали бисте добити следећи резултат:

['а', 'б'] ['јабука', 'лопта'] ['5', '3']

У горњем узорку кода, „зип“ објекат је испухан помоћу оператора „*“. Испухани резултати се затим уносе у другу функцију позива на зип која креира оригиналне листе. Имајте на уму да можда нећете добити све елементе на оригиналним листама ако су коришћене листе неједнаке дужине када је први пут креиран „зип“ објекат.

Коришћење зип-а када желите да елементи буду најдужи за понављање

У више горе наведених примера можда сте приметили да се функција „зип“ подразумевано зауставља на последњем елементу најкраћег итерабилног. Шта ако желите да се понавља и даље док не достигне последњи елемент најдужег понављања?

У таквом случају мораћете да користите методу „зип_лонгест ()“ из Питхон-овог модула „итертоолс“. Ради исто као и функција „зип“, с једном малом разликом што се зауставља на последњем елементу најдужег итерабилног типа.

из итертоолс увоза зип_лонгест
лист1 = ["а", "б", "ц"]
лист2 = ["јабука", "лопта", "мачка", "лутка"]
лист3 = ["5", "3"]
зиппед = зип_лонгест (листа1, листа2, листа3)
испис (листа (зипована))

Након покретања горе поменутог узорка кода, требали бисте добити следећи резултат:

[('а', 'аппле', '5'), ('б', 'балл', '3'), ('ц', 'цат', Ноне), (Ноне, 'долл', Ноне) ]

Недостајуће вредности попуњавају се као објекти типа „Ништа“. Такође можете доставити своју вредност за попуњавање додавањем додатног аргумента „филлвалуе“ у методу „зип_лонгест“.

из итертоолс увоза зип_лонгест
лист1 = ["а", "б", "ц"]
лист2 = ["јабука", "лопта", "мачка", "лутка"]
лист3 = ["5", "3"]
зиппед = зип_лонгест (лист1, лист2, лист3, филлвалуе = "моја_вредност")
испис (листа (зипована))

Након покретања горе поменутог узорка кода, требали бисте добити следећи резултат:

[('а', 'аппле', '5'), ('б', 'балл', '3'), ('ц', 'цат', 'ми_валуе'), ('ми_валуе', 'лутка ',' моја_вредност ')]

Закључак

Зип функција се може емулирати помоћу неких петљи и услова израза. Међутим, помаже у одржавању кода организованим и чистијим уклањањем непотребних детаљности и понављајућих изјава.

Најбоље игре командне линије за Линук
Командна линија није само ваш највећи савезник када користите Линук - она ​​такође може бити извор забаве јер је можете користити за играње многих заб...
Најбоље апликације за мапирање гамепада за Линук
Ако волите да играте игре на Линуку са гамепадом уместо са типичним системом за унос тастатуре и миша, за вас постоје неке корисне апликације. Многе и...
Корисни алати за Линук играче
Ако волите да играте игре на Линуку, велика је вероватноћа да сте можда користили апликације и услужне програме попут Вине, Лутрис и ОБС Студио за поб...