Funcția zip () preia iterabile (poate fi zero sau mai mult), le agregă într-un tuplu și o returnează.
Sintaxa zip()
funcției este:
zip (* iterabile)
zip () Parametri
Parametru | Descriere |
---|---|
iterables | pot fi iterabile încorporate (cum ar fi: list, string, dict) sau iterabile definite de utilizator |
Lectură recomandată: Python Iterators, __iter__ și __next__
Valoare returnată din zip ()
zip()
Functia returneaza un iterator de tuple bazat pe obiecte iterable.
- Dacă nu trecem niciun parametru,
zip()
returnează un iterator gol - Dacă este trecut un singur iterabil,
zip()
returnează un iterator de tupluri, fiecare tuplu având un singur element. - Dacă sunt trecute mai multe iterabile,
zip()
returnează un iterator de tupluri cu fiecare tuplu având elemente din toate iterabilele.
Să presupunem că două iterabile sunt transmise lazip()
; unul iterabil conține trei și altul conține cinci elemente. Apoi, iteratorul returnat va conține trei tupluri. Se întâmplă deoarece iteratorul se oprește atunci când cel mai scurt iterabil este epuizat.
Exemplul 1: Python zip ()
number_list = (1, 2, 3) str_list = ('one', 'two', 'three') # No iterables are passed result = zip() # Converting iterator to list result_list = list(result) print(result_list) # Two iterables are passed result = zip(number_list, str_list) # Converting iterator to set result_set = set(result) print(result_set)
Ieșire
() ((2, „doi”), (3, „trei”), (1, „unu”))
Exemplul 2: număr diferit de elemente iterabile
numbersList = (1, 2, 3) str_list = ('one', 'two') numbers_tuple = ('ONE', 'TWO', 'THREE', 'FOUR') # Notice, the size of numbersList and numbers_tuple is different result = zip(numbersList, numbers_tuple) # Converting to set result_set = set(result) print(result_set) result = zip(numbersList, str_list, numbers_tuple) # Converting to set result_set = set(result) print(result_set)
Ieșire
((2, „DOUĂ”), (3, „TREI”), (1, „UNUL”)) ((2, „două”, „DOUĂ”), (1, „unul”, „UNUL”))
* Operatorul poate fi utilizat împreună cu zip()
a dezarhiva lista.
zip (* zippedList)
Exemplul 3: Dezarhivarea valorii folosind zip ()
coordinate = ('x', 'y', 'z') value = (3, 4, 5) result = zip(coordinate, value) result_list = list(result) print(result_list) c, v = zip(*result_list) print('c =', c) print('v =', v)
Ieșire
(('x', 3), ('y', 4), ('z', 5)) c = ('x', 'y', 'z') v = (3, 4, 5)