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