Funkce zip () vezme iterovatelné položky (může být nula nebo více), agreguje je do n-tice a vrátí ji.
Syntaxe zip()
funkce je:
zip (* iterable)
zip () Parametry
Parametr | Popis |
---|---|
iterables | mohou to být vestavěné iterovatelné položky (jako: seznam, řetězec, diktát) nebo uživatelem definované iterovatelné položky |
Doporučené čtení: Python Iterators, __iter__ a __next__
Návratová hodnota ze zipu ()
zip()
Vrací iterátor n-tic na základě iterable objektů.
- Pokud nepředáme žádný parametr,
zip()
vrátí prázdný iterátor - Pokud je předána
zip()
jedna iterace , vrátí iterátor n-tic, přičemž každá n-tice má pouze jeden prvek. - Pokud je předáno více iterable,
zip()
vrátí iterátor n-tic, přičemž každá n-tice má prvky ze všech iterable.
Předpokládejme, že jsou předány dva iterablezip()
; jedna iterovatelná obsahující tři a druhá obsahující pět prvků. Vrátený iterátor pak bude obsahovat tři n-tice. Je to proto, že iterátor se zastaví, když je vyčerpána nejkratší iterace.
Příklad 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)
Výstup
() ((2, 'two'), (3, 'three'), (1, 'one'))
Příklad 2: Různý počet opakovatelných prvků
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)
Výstup
((2, „DVA“), (3, „TŘI“), (1, „JEDEN“)) ((2, „dva“, „DVA“), (1, „jeden“, „JEDEN“))
* Operátor může být použit ve spojení s zip()
rozbalit seznam.
zip (* zippedList)
Příklad 3: Rozbalení hodnoty pomocí 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)
Výstup
(('x', 3), ('y', 4), ('z', 5)) c = ('x', 'y', 'z') v = (3, 4, 5)