Python zip ()

Die Funktion zip () nimmt Iterables (kann null oder mehr sein), aggregiert sie in einem Tupel und gibt sie zurück.

Die Syntax der zip()Funktion lautet:

 zip (* iterables)

zip () Parameter

Parameter Beschreibung
iterables Dies können integrierte Iterables (wie: Liste, Zeichenfolge, Diktat) oder benutzerdefinierte Iterables sein

Empfohlene Lektüre: Python-Iteratoren, __iter__ und __next__

Rückgabewert von zip ()

Die zip() Funktion gibt einen Iterator von Tupeln zurück, der auf den iterierbaren Objekten basiert.

  • Wenn wir keinen Parameter übergeben, wird zip()ein leerer Iterator zurückgegeben
  • Wenn eine einzelne Iterable übergeben wird, wird zip()ein Iterator von Tupeln zurückgegeben, wobei jedes Tupel nur ein Element enthält.
  • Wenn mehrere Iterables übergeben werden, wird zip()ein Tupeliterator zurückgegeben, wobei jedes Tupel Elemente aus allen Iterables enthält.
    Angenommen, zwei Iterables werden an übergeben zip(). eine iterable enthält drei und die andere enthält fünf Elemente. Dann enthält der zurückgegebene Iterator drei Tupel. Dies liegt daran, dass der Iterator stoppt, wenn die kürzeste Iteration erschöpft ist.

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

Ausgabe

 () ((2, 'zwei'), (3, 'drei'), (1, 'eins'))

Beispiel 2: Unterschiedliche Anzahl iterierbarer Elemente

 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)

Ausgabe

 ((2, 'ZWEI'), (3, 'DREI'), (1, 'EINS')) ((2, 'Zwei', 'ZWEI'), (1, 'Eins', 'EINS'))

Der Operator * kann in Verbindung mit zip()zum Entpacken der Liste verwendet werden.

 zip (* zippedList)

Beispiel 3: Entpacken des Werts mit 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)

Ausgabe

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

Interessante Beiträge...