Metoda Python zip(). vezme iterovatelné kontejnery a vrátí jediný objekt iterátoru s namapovanými hodnotami ze všech kontejnerů.
Syntaxe Pythonu zip().
Je zvyklý zmapujte podobný index více kontejnerů, aby je bylo možné použít pouze pomocí jediné entity.
Syntaxe: zip (*iterátory)
Parametry: Iterovatelné nebo kontejnery Pythonu (seznam, řetězec atd.)
Návratová hodnota: Vrátí jeden objekt iterátoru.
zip() v příkladech Pythonu
Python zip() se seznamy
v Krajta , funkce zip() se používá ke spojení dvou nebo více seznamy (nebo jakékoli jiné iterovatelné) do jediné iterovatelné, kde jsou prvky z odpovídajících pozic spárovány dohromady. Výsledný iterovatelný obsahuje n-tice , kde je první prvek z každého seznamu spárován dohromady, druhý prvek z každého seznamu je spárován dohromady atd.
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))> |
>
>Výstup
{('Nikhil', 1), ('Shambhavi', 3), ('Manjeet', 4), ('Astha', 2)}> Python zip() s výčtem
Kombinace zip() a vyjmenovat() je užitečné ve scénářích, kde chcete zpracovávat více seznamů nebo n-tic paralelně a také potřebujete mít přístup k jejich indexům pro jakýkoli konkrétní účel.
Python3
names>=> [>'Mukesh'>,>'Roni'>,>'Chari'>]> ages>=> [>24>,>50>,>18>]> for> i, (name, age)>in> enumerate>(>zip>(names, ages)):> >print>(i, name, age)> |
>
java rovná se
>Výstup
0 Mukesh 24 1 Roni 50 2 Chari 18>
Python zip() se slovníkem
Funkce zip() v Pythonu se používá ke kombinaci dvou nebo více iterovatelných slovníky do jediné iterovatelné, kde jsou odpovídající prvky ze vstupní iterovatelné spárovány dohromady jako n-tice. Při použití zip() se slovníky spáruje klíče a hodnoty slovníků na základě jejich pozice ve slovníku.
Python3
stocks>=> [>'GEEKS'>,>'For'>,>'geeks'>]> prices>=> [>2175>,>1127>,>2750>]> new_dict>=> {stocks: prices>for> stocks,> >prices>in> zip>(stocks, prices)}> print>(new_dict)> |
>
>Výstup
{'GEEKS': 2175, 'For': 1127, 'geeks': 2750}> Python zip() s Tuple
Při použití s n-ticemi, zip() funguje tak, že páruje prvky z n-tic na základě jejich pozic. Výsledná iterovatelná obsahuje n-tice, kde i-tá n-tice obsahuje i-tý prvek z každé vstupní n-tice.
Python3
tuple1>=> (>1>,>2>,>3>)> tuple2>=> (>'a'>,>'b'>,>'c'>)> zipped>=> zip>(tuple1, tuple2)> result>=> list>(zipped)> print>(result)> |
>
>
Výstup:
[(1, 'a'), (2, 'b'), (3, 'c')]>
Python zip() s více iterovatelnými
Funkci zip() v Pythonu lze také použít ke kombinaci více než dvou iterovatelných. Může vzít více iterovatelných jako vstup a vrátit iterovatelnou n-tice, kde každá n-tice obsahuje prvky z odpovídajících pozic vstupních iterovatelných jednotek.
Python3
list1>=> [>1>,>2>,>3>]> list2>=> [>'a'>,>'b'>,>'c'>]> list3>=> [>'x'>,>'y'>,>'z'>]> zipped>=> zip>(list1, list2, list3)> result>=> list>(zipped)> print>(result)> |
>
>Výstup
[(1, 'a', 'x'), (2, 'b', 'y'), (3, 'c', 'z')]>
Zipové seznamy nestejné velikosti
Funkce zip() bude iterovat pouze přes nejmenší prodaný seznam. Pokud zadáte seznamy různých délek, výsledná kombinace bude pouze tak dlouhá, jak dlouhý bude nejmenší seznam, který prošel. V následujícím příkladu kódu:
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)> |
>
>Výstup
Zipped result as a list: ('Chandler', 'Male', 35) ('Monica', 'Female', 36) ('Ross', 'Male', 38) ('Rachel', 'Female', 34)> Rozbalení pomocí zip()
Rozbalení znamená převedení zazipovaných hodnot zpět na individuální já tak, jak byly. To se provádí pomocí * operátor.
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)> |
>
>
Výstup
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)> Použití zip() s Python Loops
Existuje mnoho možných aplikací, o kterých lze říci, že jsou spouštěny pomocí zipu, ať už je to tak databáze studentů nebo výsledková listina nebo jakýkoli jiný nástroj, který vyžaduje mapování skupin. Malý příklad bodovací karty je uveden níže.
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))> |
>
>Výstup
Player : Sachin Score : 100 Player : Sehwag Score : 15 Player : Gambhir Score : 17 Player : Dravid Score : 28 Player : Raina Score : 43>