logo

zip() w Pythonie

Metoda zip() w Pythonie pobiera iterowalne kontenery i zwraca pojedynczy obiekt iteratora, mający zmapowane wartości ze wszystkich kontenerów.

Składnia zip() w Pythonie

Jest to przyzwyczajone mapuj podobny indeks wielu kontenerów, aby można było ich używać tylko przy użyciu jednej jednostki.

Składnia: zip(*iteratory)



Parametry: Iterowalne elementy Pythona lub kontenery (lista, ciąg znaków itp.)
Wartość zwracana: Zwraca pojedynczy obiekt iteratora.

zip() w przykładach Pythona

Python zip() z listami

W Pyton , funkcja zip() służy do łączenia dwóch lub więcej listy (lub dowolne inne elementy iterowalne) w jedną iterowalną, w której elementy z odpowiednich pozycji są ze sobą łączone. Wynikowy iterowalny zawiera krotki , gdzie pierwszy element z każdej listy jest ze sobą sparowany, drugi element z każdej listy jest ze sobą sparowany i tak dalej.

Python3




name>=> [>'Manjeet'>,>'Nikhil'>,>'Shambhavi'>,>'Astha'> ]> roll_no>=> [>4>,>1>,>3>,>2> ]> # using zip() to map values> mapped>=> zip>(name, roll_no)> print>(>set>(mapped))>

>

logika zdań
>

Wyjście

{('Nikhil', 1), ('Shambhavi', 3), ('Manjeet', 4), ('Astha', 2)}>

Python zip() z wyliczeniem

Kombinacja zip() i wyliczać() jest przydatny w scenariuszach, w których chcesz przetwarzać wiele list lub krotek równolegle, a także potrzebujesz dostępu do ich indeksów w dowolnym konkretnym celu.

Python3




names>=> [>'Mukesh'>,>'Roni'>,>'Chari'>]> ages>=> [>24>,>50>,>18>]> for> i, (name, age)>in> enumerate>(>zip>(names, ages)):> >print>(i, name, age)>

>

>

Wyjście

0 Mukesh 24 1 Roni 50 2 Chari 18>

Python zip() ze słownikiem

Funkcja zip() w Pythonie służy do łączenia dwóch lub większej liczby iterowalnych elementów słowniki w pojedynczą iterację, gdzie odpowiednie elementy z wejściowej iteracji są łączone w pary jako krotki. Używając funkcji zip() ze słownikami, łączy ona klucze i wartości słowników na podstawie ich pozycji w słowniku.

Python3




stocks>=> [>'GEEKS'>,>'For'>,>'geeks'>]> prices>=> [>2175>,>1127>,>2750>]> new_dict>=> {stocks: prices>for> stocks,> >prices>in> zip>(stocks, prices)}> print>(new_dict)>

>

>

Konwerter ciągu znaków na int
Wyjście

{'GEEKS': 2175, 'For': 1127, 'geeks': 2750}>

Python zip() z Tuple

W przypadku użycia z krotkami, zamek błyskawiczny() działa poprzez łączenie elementów z krotek na podstawie ich pozycji. Wynikowa iteracja zawiera krotki, gdzie i-ta krotka zawiera i-ty element z każdej krotki wejściowej.

Python3




tuple1>=> (>1>,>2>,>3>)> tuple2>=> (>'a'>,>'b'>,>'c'>)> zipped>=> zip>(tuple1, tuple2)> result>=> list>(zipped)> print>(result)>

>

>

Wyjście:

[(1, 'a'), (2, 'b'), (3, 'c')]>

Python zip() z wieloma obiektami iteracyjnymi

Funkcji zip() w języku Python można także używać do łączenia więcej niż dwóch iteracji. Może przyjmować wiele iteracji jako dane wejściowe i zwracać iterowalną krotkę, przy czym każda krotka zawiera elementy z odpowiednich pozycji wejściowych iteracji.

Python3




list1>=> [>1>,>2>,>3>]> list2>=> [>'a'>,>'b'>,>'c'>]> list3>=> [>'x'>,>'y'>,>'z'>]> zipped>=> zip>(list1, list2, list3)> result>=> list>(zipped)> print>(result)>

>

>

Wyjście

[(1, 'a', 'x'), (2, 'b', 'y'), (3, 'c', 'z')]>

Spakowanie list o różnej wielkości

Funkcja zip() będzie iterować tylko po najmniejszej przekazanej liście. Jeśli podane są listy o różnej długości, wynikowa kombinacja będzie miała tylko taką długość, jak przepuszczona została najmniejsza lista. W poniższym przykładzie kodu:

Python3




# Define lists for 'persons', 'genders', and a tuple for 'ages'> persons>=> [>'Chandler'>,>'Monica'>,>'Ross'>,>'Rachel'>,>'Joey'>,>'Phoebe'>,>'Joanna'>]> genders>=> [>'Male'>,>'Female'>,>'Male'>,>'Female'>,>'Male'>,>'Female'>,>'Female'>]> ages>=> (>35>,>36>,>38>,>34>)> # Create a zipped object combining the 'persons' and 'genders'> #lists along with the 'ages' tuple> zipped_result>=> zip>(persons, genders, ages)> # Print the zipped object> print>(>'Zipped result as a list:'>)> for> i>in> list>(zipped_result):> >print>(i)>

>

jak wydrukować Java
>

Wyjście

Zipped result as a list: ('Chandler', 'Male', 35) ('Monica', 'Female', 36) ('Ross', 'Male', 38) ('Rachel', 'Female', 34)>

Rozpakowywanie za pomocą zip()

Rozpakowanie oznacza konwersję spakowanych wartości z powrotem na indywidualne ja w takiej postaci, w jakiej były. Odbywa się to za pomocą * operator.

Python3




# initializing lists> name>=> [>'Manjeet'>,>'Nikhil'>,>'Shambhavi'>,>'Astha'>]> roll_no>=> [>4>,>1>,>3>,>2>]> marks>=> [>40>,>50>,>60>,>70>]> # using zip() to map values> mapped>=> zip>(name, roll_no, marks)> # converting values to print as list> mapped>=> list>(mapped)> # printing resultant values> print>(>'The zipped result is : '>, end>=>'')> print>(mapped)> print>(>' '>)> # unzipping values> namz, roll_noz, marksz>=> zip>(>*>mapped)> print>(>'The unzipped result: '>, end>=>'')> # printing initial lists> print>(>'The name list is : '>, end>=>'')> print>(namz)> print>(>'The roll_no list is : '>, end>=>'')> print>(roll_noz)> print>(>'The marks list is : '>, end>=>'')> print>(marksz)>

>

>

Wyjście

The zipped result is : [('Manjeet', 4, 40), ('Nikhil', 1, 50), ('Shambhavi', 3, 60), ('Astha', 2, 70)] The unzipped result: The name list is : ('Manjeet', 'Nikhil', 'Shambhavi', 'Astha') The roll_no list is : (4, 1, 3, 2) The marks list is : (40, 50, 60, 70)>

Używanie zip() z pętlami Pythona

Można powiedzieć, że istnieje wiele możliwych aplikacji, które można uruchomić za pomocą zip baza danych uczniów lub karta wyników lub inne narzędzie wymagające mapowania grup. Mały przykład karty wyników pokazano poniżej.

Python3




# Python code to demonstrate the application of> # zip()> # initializing list of players.> players>=> [>'Sachin'>,>'Sehwag'>,>'Gambhir'>,>'Dravid'>,>'Raina'>]> # initializing their scores> scores>=> [>100>,>15>,>17>,>28>,>43>]> # printing players and scores.> for> pl, sc>in> zip>(players, scores):> >print>(>'Player : %s Score : %d'> %> (pl, sc))>

>

>

Wyjście

Player : Sachin Score : 100 Player : Sehwag Score : 15 Player : Gambhir Score : 17 Player : Dravid Score : 28 Player : Raina Score : 43>