Python zip ()

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 iterable zip(); 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) 

Zajímavé články...