zip() in Python

Python zip()-Methode Nimmt iterierbare Container und gibt ein einzelnes Iteratorobjekt zurück, dem Werte aus allen Containern zugeordnet sind.

Python zip()-Syntax

Es ist gewohnt Ordnen Sie den ähnlichen Index mehrerer Container zu, sodass sie nur mit einer einzigen Entität verwendet werden können.

Syntax : zip(*Iteratoren)

Parameter: Python-Iterables oder Container (Liste, String usw.)
Rückgabewert : Gibt ein einzelnes Iteratorobjekt zurück.

zip() in Python-Beispielen

Python zip() mit Listen

In Python , die Funktion zip() wird verwendet, um zwei oder mehr zu kombinieren Listen (oder andere Iterables) in ein einzelnes Iterable, in dem Elemente aus entsprechenden Positionen miteinander gepaart werden. Die resultierende Iterable enthält Tupel , wobei das erste Element jeder Liste gepaart wird, das zweite Element jeder Liste gepaart wird und so weiter.

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))>

Ausgabe

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

Python zip() mit enumerate

Die Kombination von zip() und aufzählen() ist in Szenarien nützlich, in denen Sie mehrere Listen oder Tupel parallel verarbeiten möchten und außerdem für einen bestimmten Zweck auf deren Indizes zugreifen müssen.

Python3




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

Ausgabe

0 Mukesh 24 1 Roni 50 2 Chari 18 

Python zip() mit Wörterbuch

Die Funktion zip() in Python wird verwendet, um zwei oder mehr iterierbare Elemente zu kombinieren Wörterbücher in eine einzelne Iterable, wobei entsprechende Elemente aus der Eingabe-Iterable als Tupel gepaart werden. Bei der Verwendung von zip() mit Wörterbüchern werden die Schlüssel und Werte der Wörterbücher basierend auf ihrer Position im Wörterbuch gepaart.

Python3




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

Ausgabe

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

Python zip() mit Tupel

Bei Verwendung mit Tupeln Reißverschluss() funktioniert, indem die Elemente aus Tupeln basierend auf ihren Positionen gepaart werden. Die resultierende Iterable enthält Tupel, wobei das i-te Tupel das i-te Element aus jedem Eingabetupel enthält.

Python3




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

Ausgabe:

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

Python zip() mit mehreren Iterables

Die Funktion zip() von Python kann auch verwendet werden, um mehr als zwei Iterables zu kombinieren. Es kann mehrere Iterables als Eingabe verwenden und ein Iterable aus Tupeln zurückgeben, wobei jedes Tupel Elemente aus den entsprechenden Positionen der Eingabe-Iterables enthält.

Python3




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

Ausgabe

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

Komprimieren von Listen unterschiedlicher Größe

Die Funktion zip() iteriert nur über die kleinste übergebene Liste. Bei unterschiedlich langen Listen ist die resultierende Kombination nur so lang wie die kleinste übergebene Liste. Im folgenden Codebeispiel:

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)>

Ausgabe

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

Entpacken mit zip()

Entpacken bedeutet, die gezippten Werte wieder in das individuelle Selbst umzuwandeln, so wie sie waren. Dies geschieht mit Hilfe von * 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)>

Ausgabe

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) 

Verwenden von zip() mit Python-Schleifen

Es gibt viele mögliche Anwendungen, von denen man sagen kann, dass sie mit zip ausgeführt werden Studentendatenbank oder Scorecard oder jedes andere Dienstprogramm, das eine Zuordnung von Gruppen erfordert. Nachfolgend wird ein kleines Beispiel einer Scorecard gezeigt.

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))>

Ausgabe

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