Zip de Python ()

La función zip () toma iterables (puede ser cero o más), los agrega en una tupla y los devuelve.

La sintaxis de la zip()función es:

 zip (* iterables)

Parámetros zip ()

Parámetro Descripción
iterables pueden ser iterables incorporados (como: lista, cadena, dict) o iterables definidos por el usuario

Lectura recomendada: iteradores de Python, __iter__ y __next__

Valor devuelto de zip ()

La zip() función devuelve un iterador de tuplas basado en los objetos iterables.

  • Si no pasamos ningún parámetro, zip()devuelve un iterador vacío
  • Si se pasa un único iterable, zip()devuelve un iterador de tuplas con cada tupla con un solo elemento.
  • Si se pasan varios iterables, zip()devuelve un iterador de tuplas y cada tupla tiene elementos de todos los iterables.
    Supongamos que se pasan dos iterables zip(); uno iterable que contiene tres y otro que contiene cinco elementos. Entonces, el iterador devuelto contendrá tres tuplas. Es porque el iterador se detiene cuando se agota el iterable más corto.

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

Salida

 () ((2, 'dos'), (3, 'tres'), (1, 'uno'))

Ejemplo 2: diferente número de elementos iterables

 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)

Salida

 ((2, 'DOS'), (3, 'TRES'), (1, 'UNO')) ((2, 'dos', 'DOS'), (1, 'uno', 'UNO'))

El operador * se puede utilizar junto con zip()para descomprimir la lista.

 zip (* zippedList)

Ejemplo 3: descomprimir el valor con 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)

Salida

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

Articulos interesantes...