martes, 24 de agosto de 2021

Función Zip de Python

¿Cómo usar la función Zip de Python?

La función zip de Python toma la información de varios arreglos y los agrega en una trupla. Supongamos que tenemos dos listas una llena de datos numéricos y otra llena con las cadenas de texto de esos datos numéricos. La orden es asociar esa cadena de texto con ese dato numérico.

lista_numeros = [1, 2, 3, 4, 5]
lista_texto = ['Uno', 'Dos', 'Tres', 'Cuatro', 'Cinco']

Para asociarlos usamos la función zip como se muestra en las líneas siguientes :

resultado = zip(lista_numeros, lista_texto)

Pasadas las dos listas será necesario convertirlo a un conjunto con ayuda de set utilizado para trabajar con un conjunto de elementos el cual elimina duplicados de las listas como utilizado para saber si un elemento pertenece o no a una colección. Mediante set podemos realizar operaciones matemáticas en relación a la teoría de conjuntos usando la unión, intersección, diferencia, etc.

Un ejemplo sencillo del uso de set es :

lista=[9,5,9,3,2,1,1,7,2]
#uso de set
diccionario=set(lista)
print(diccionario)

El resultado es :

{1, 2, 3, 5, 7, 9}

Podemos observar que elimina de la lista los elementos repetidos y la ordena. Ocupando set para el ejemplo del uso de zip para obtener la asociación mediante :

resultado = zip(lista_numeros, lista_texto)
resultado_set=set(resultado)
print(resultado_set)

Finalmente se obtiene lo siguiente :

{(5, 'Cinco'), (2, 'Dos'), (1, 'Uno'), (4, 'Cuatro'), (3, 'Tres')}

Existe otra clase para representar conjuntos no solamente con set llamada frozeset y como su nombre lo indica congela los conjuntos y no será posible modificarlos, por lo que setes mutable y frozeset no es mutable.

Finalmente el código completo queda de la forma siguiente :

lista_numeros = [1, 2, 3, 4, 5]
lista_texto = ['Uno', 'Dos', 'Tres', 'Cuatro', 'Cinco']
resultado = zip(lista_numeros, lista_texto)
resultado_set=set(resultado)
print(resultado_set)

Resultado

Finalmente para se ha agreado la impresión de pantalla de esta función para una mejor comprensión. ZIP Nota : El orden del resultado es aleatorio.