Python zip ()

Funkcia zip () vezme iterovateľné súbory (môžu byť nulové alebo viac), agreguje ich do n-tice a vráti ju.

Syntax zip()funkcie je:

 zip (* iterable)

zip () Parametre

Parameter Popis
iterables môžu to byť vstavané iteračné súbory (napríklad: zoznam, reťazec, diktát) alebo používateľom definované iteračné súbory

Odporúčané čítanie: Iterátory Pythonu, __iter__ a __next__

Vrátená hodnota zo zipu ()

zip() Vracia iterátor n-tic na základe iterable objektov.

  • Ak nezadáme žiadny parameter, zip()vráti prázdny iterátor
  • Ak je odovzdaná jedna iterácia, zip()vráti iterátor n-tic, pričom každá n-tica má iba jeden prvok.
  • Ak je odovzdaných viac iterabilít, zip()vráti iterátor n-tic, pričom každý n-tic má prvky zo všetkých iterátorov.
    Predpokladajme, že sú odovzdané dva iterovateľné súbory zip(); jeden iteračný obsahujúci tri a druhý obsahujúci päť prvkov. Vrátený iterátor potom bude obsahovať tri n-tice. Je to preto, že iterátor sa zastaví, keď sa vyčerpá najkratšia iterácia.

Prí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ýkon

 () ((2, „dva“), (3, „tri“), (1, „jeden“))

Príklad 2: Odlišný počet opakovateľných prvkov

 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ýkon

 ((2, „DVA“), (3, „TROJA“), (1, „JEDEN“)) ((2, „dva“, „DVA“), (1, „jeden“, „JEDEN“))

Na rozbalenie zoznamu je možné použiť operátor *zip() .

 zip (* zippedList)

Príklad 3: Rozbalenie hodnoty pomocou 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ýkon

 ((('x', 3), ('y', 4), ('z', 5)) c = ('x', 'y', 'z') v = (3, 4, 5) 

Zaujímavé články...