Función zip() de Python
Funciones integradas de Python
Descripción
zip()La función toma objetos iterables como parámetros, agrupa los elementos correspondientes de los objetos en tuplas y devuelve una lista compuesta por estas tuplas.
Si el número de elementos de cada iterador no es consistente, la longitud de la lista devuelta será igual al objeto más corto. Usando el operador *, las tuplas pueden descomprimirse en listas.
Diferencia del método zip en Python 2 y Python 3: en Python 3.x, para reducir memoria, zip() devuelve un objeto. Si se necesita mostrar una lista, debe convertirse manualmente con list().
Si necesita conocer las aplicaciones de Python 3, puede consultarPython3 zip()。
Sintaxis
Sintaxis de zip:
zip([iterable, ...])
Descripción de parámetros:
- iterable -- uno o más iteradores;
Valor de retorno
Devuelve una lista de tuplas.
Ejemplo
Los siguientes dos ejemplos muestran respectivamentePython2.xyPython3.x zipel método de uso de:
Ejemplo (Python 2.0+)
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # Empaquetar como lista de tuplas
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c) # El número de elementos coincide con la lista más corta
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped) # Opuesto a zip, *zipped se puede entender como descompresión, devuelve una matriz bidimensional
[(1, 2, 3), (4, 5, 6)]
Ejemplo (Python 3.0+)
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # Devuelve un objeto
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped) # Convertir a lista con list()
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c)) # El número de elementos coincide con la lista más corta
[(1, 4), (2, 5), (3, 6)]
>>> a1, a2 = zip(*zip(a,b)) # Opuesto a zip, zip(*) se puede entender como descompresión, devuelve una matriz bidimensional
>>> list(a1)
[1, 2, 3]
>>> list(a2)
[4, 5, 6]
>>>