martes, 27 de mayo de 2008

Función zip the python

zip es una función para reorganizar listas en python. Como parámetros admite un conjunto de listas. Lo que realmente hace es tomar el elemento iésimo de cada lista y unirlos en una tupla, después une todas las tuplas en una lista.

No es tan difícil como parece, se entiende mejor con un ejemplo.

#!/usr/bin/python

lista=[1,2,3,4,5,6,7,8,9];

l2=filter(lambda n : n%2==0, lista);

print l2;

l3=zip(lista,l2);

print l3;

En este caso construimos la lista "l2" usando una función lambda, esta lista contiene los números pares de "lista", es decir [2, 4, 6, 8].

Posteriormente ejecutamos zip sobre las dos listas, obtenemos [(1, 2), (2, 4), (3, 6), (4, 8)], una lista de tuplas combinando las dos listas, primero "lista" y después "l2".

En el ejemplo anterior hemos combinado dos listas, pero puede hacerse con más a la vez, si por ejemplo obtenemos una lista de nombres, y otras dos con los apellidos de una base de datos podríamos combinarlas de la siguiente forma.

#!/usr/bin/python

nombres=["Francisco", "Jose", "Fernando"];
apellidos1=["Fernandez", "Rodriguez", "Jimenez"];
apellidos2=["Jimenez", "Rodriguez", "Fernandez"];

nombresCompletos=zip(nombres, apellidos1, apellidos2);

for i in nombresCompletos:
print i;

3 comentarios:

l0ngin0s dijo...

Fíjate que buscando info de la función zip de python, me encuentro nuevamente con tu blog, como no podría ser de otra manera ;)

Un abrazo, maestro.

javiyu dijo...

Muchas gracias, es antiguo pero espero que te haya servido :).

Un saludo!

Naye Wonka dijo...

Muchas Gracias por tomarte el tiempo de explicar con ejemplos ... te lo agradezco en verdad!