Python zip ()

Funkcija zip () uzima iterable (može biti nula ili više), agregira ih u skup i vraća ih.

Sintaksa zip()funkcije je:

 zip (* iterables)

zip () parametri

Parametar Opis
iterables mogu biti ugrađeni iterables (poput: popisa, niza, diktata) ili korisnički definirani iterables

Preporučena literatura: Python Iterators, __iter__ i __next__

Povratna vrijednost iz zip ()

zip() Funkcija vraća iterator od torke na temelju iterable objekata.

  • Ako ne proslijedimo nijedan parametar, zip()vraća prazan iterator
  • Ako se prođe jedan iterabil, zip()vraća iterator korijena, pri čemu svaki tuple ima samo jedan element.
  • Ako se proslijedi više iterablea, zip()vraća iterator tuplea, pri čemu svaki tuple ima elemente iz svih iterablea.
    Pretpostavimo, dva iterablea su proslijeđena zip(); jedan ponovljivi koji sadrži tri, a drugi koji sadrži pet elemenata. Zatim će vraćeni iterator sadržavati tri korice. To je zato što se iterator zaustavlja kad se iscrpi najkraći iteral.

Primjer 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)

Izlaz

 () ((2, 'dva'), (3, 'tri'), (1, 'jedan'))

Primjer 2: Različiti broj ponovljivih elemenata

 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)

Izlaz

 ((2, 'TWO'), (3, 'THREE'), (1, 'ONE')) ((2, 'two', 'TWO'), (1, 'one', 'ONE'))

Operator * može se koristiti zajedno sa zip()za raspakiranje popisa.

 zip (* zippedList)

Primjer 3: Raspakiranje vrijednosti pomoću zip-a ()

 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)

Izlaz

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

Zanimljivi članci...