Breaking

Post Top Ad

Your Ad Spot

viernes, 14 de junio de 2019

La función zip de Python ()

En este artículo, examinaremos cómo usar la zip()función Python incorporada.
La zip()función es una función incorporada de Python que nos permite combinar elementos correspondientes de múltiples secuencias en una única lista de tuplas . Las secuencias son los argumentos aceptados por la zip()función. Se puede suministrar cualquier número de secuencias, pero el caso de uso más común es combinar elementos correspondientes en dos secuencias.
Por ejemplo, digamos que tenemos las dos listas a continuación:
>>> vehicles = ['unicycle', 'motorcycle', 'plane', 'car', 'truck']
>>> wheels = [1, 2, 3, 4, 18]
Podemos usar la zip()función para asociar elementos de estas dos listas según su orden:
>>> list(zip(vehicles, wheels))
[('unicycle', 1), ('motorcycle', 2), ('plane', 3), ('car', 4), ('truck', 18)]
Observe cómo la salida es una secuencia de tuplas, donde cada tupla combina elementos de las secuencias de entrada con los índices correspondientes.
Una cosa importante a tener en cuenta es que si las secuencias de entrada tienen diferentes longitudes, zip()solo hará coincidir los elementos hasta que se llegue al final de la lista más corta. Por ejemplo:
>>> vehicles = ['unicycle', 'motorcycle', 'plane', 'car', 'truck']
>>> wheels = [1, 2, 3]
>>> list(zip(vehicles, wheels))
[('unicycle', 1), ('motorcycle', 2), ('plane', 3)]
Dado que la wheelslista es más corta en este ejemplo (3 elementos en lugar de los 5 que vehiclestiene), la secuencia se detuvo en "plano".
Como se mencionó anteriormente, la zip()función se puede utilizar con más de dos secuencias:
>>> vehicles = ['unicycle', 'motorcycle', 'plane', 'car', 'truck']
>>> wheels = [1, 2, 3, 4, 18]
>>> energy_sources = ['pedal', 'gasoline', 'jet fuel', 'gasoline', 'diesel']
>>> list(zip(vehicles, wheels, energy_sources))
[('unicycle', 1, 'pedal'), ('motorcycle', 2, 'gasoline'), ('plane', 3, 'jet fuel'), ('car', 4, 'gasoline'), ('truck', 18, 'diesel')]
Una razón para conectar varias secuencias como esta es crear una forma más limpia de iterar sobre los elementos en múltiples secuencias. Sin la zip()función, tendríamos que hacer algo como esto:
>>> for i in range(len(vehicles)):
...     print('A ' + vehicles[i] + ' has ' + str(wheels[i]) + ' wheels and runs on ' + energy_sources[i])
...
A unicycle has 1 wheels and runs on pedal  
A motorcycle has 2 wheels and runs on gasoline  
A plane has 3 wheels and runs on jet fuel  
A car has 4 wheels and runs on gasoline  
A truck has 18 wheels and runs on diesel  
Pero con la zip()función podemos usar la siguiente sintaxis de limpieza mediante el desempaquetado de tuplas:
>>> for v, w, es in zip(vehicles, wheels, energy_sources):
...     print('A ' + v + ' has ' + str(w) + ' wheels and runs on ' + es)
...
A unicycle has 1 wheels and runs on pedal  
A motorcycle has 2 wheels and runs on gasoline  
A plane has 3 wheels and runs on jet fuel  
A car has 4 wheels and runs on gasoline  
A truck has 18 wheels and runs on diesel  
Una última cosa que entender acerca de la zip()función es que en realidad devuelve un iterador , no una lista de tuplas. Tenga en cuenta que en nuestros dos primeros ejemplos anteriores, envolvimos la zip()función dentro del list()tipo para convertir el resultado en una lista. Si intentáramos mostrar el valor de retorno de la zip()función directamente, veríamos algo como esto:
>>> zip(vehicles, wheels)
<zip object at 0x1032caf48>  
Este 'objeto zip' es una instancia iterable de la Zipclase, lo que significa que devolverá su contenido uno por uno en un bucle for, en lugar de hacerlo todo de una vez, como lo hace una lista. Esto es más eficiente para secuencias grandes que requerirían mucha memoria si se accediera de una vez.

Sobre el Autor

Este artículo fue escrito por Jacob Stopak, un consultor y desarrollador de software con pasión por ayudar a otros a mejorar sus vidas a través del código. Jacob es el creador de Initial Commit , un sitio dedicado a ayudar a los desarrolladores curiosos a aprender cómo se codifican sus programas favoritos. Su proyecto destacado ayuda a las personas a aprender Git a nivel de código.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas