Desempaquetar una secuencia en variables separadas en Python

En Python, a menudo trabajamos con secuencias de elementos, como listas, tuplas o cadenas. En algunos casos, puede resultar útil desempaquetar una secuencia en variables separadas para acceder y manipular sus elementos de forma individual. En este artículo, exploraremos cómo desempaquetar una secuencia en variables separadas utilizando ejemplos prácticos en Python.

Desempaquetar una secuencia en variables separadas en Python

Desempaquetar una secuencia en variables separadas en Python

En Python, podemos desempaquetar una secuencia en variables separadas utilizando una sintaxis de asignación múltiple. Esto nos permite asignar cada elemento de la secuencia a una variable correspondiente, lo que facilita su acceso y manipulación.

Como ejemplo vamos a tomar la siguiente lista y la vamos a separar en diferentes variables.

data = [ 'ACME', 50, 91.1, (2012, 12, 21) ]

Entonces hacemos la division de variables de la siguiente forma.

marca, peso, precio, fecha = data

Ahora si queremos acceder a una variable de las que hemos creado, basta con llamarla. Por ejemplo vamos a imprimir fecha.

print(fecha)

El número de variables debe ser igual a la cantidad de elementos en la secuencia que deseamos separar.

El desempaquetado realmente funciona con cualquier objeto que sea iterable, no solo con tuplas o listas. Esto incluye strings, archivos, iteradores y generadores. Por ejemplo el siguiente string:

s = 'Hello'

Y crearemos variables con su respectivos valores que provienen de cada letra de la cadena de texto anterior.

a, b, c, d, e = s

De igual manera puede ocurrir que no deseemos crear variables para ciertos elementos de la secuencia; es decir excluir algunos valores y aunque en Python no se encuentre un método oficial, podemos hacer lo siguiente.

_, peso, precio, _ = data

Suponinedo que la secuencia que queremos dividir en variables posee demasiados elementos; entonces hacemos los siguiente:

Ésta es la tupla que vamos a dividir:

record = ('David', 'david@example.com', '743-555-1202', '867-555-1252')
nombre, email, *phone_numbs = record

Utilizamos *phone_numbs para almacenar todos los elementos que siguen después de email, es decir que al imprimir me retorna '743-555-1202', '867-555-1252'

Artículo Anterior Artículo Siguiente