La desestructuración (destructuring) es una característica del lenguaje que permite extraer los elementos de una lista y no solo ella en variables separadas de manera sencilla. Aunque es opcional, resulta muy útil.
Imagina que tienes una lista de dos elementos con los que quieres trabajar en tu programa. La forma más sencilla de utilizar sus elementos es referenciar constantemente por índice point[0] y point[1].
point = [3, 5]
print(f`{point[0]}:{point[1]}`) # => 3:5
Los índices no informan nada sobre el contenido, y para entender este código, tendrás que hacer un esfuerzo adicional. Es mucho mejor asignar estos valores a variables con buenos nombres primero. De esta manera, el código se vuelve más legible:
x = point[0]
y = point[1]
print(f`{x}:{y}`) # => 3:5
El código es ahora considerablemente más claro, aunque más largo. Con la desestructuración, puedes hacer lo mismo de manera más concisa:
[x, y] = point
# La lista de la izquierda reproduce la estructura del listado de la derecha
# pero usa identificadores en lugar de valores
# se llenan con los valores en las mismas posiciones en la lista derecha
# [x, y] = [3, 5]
# x = 3, y = 5
print(f`{x}:{y}`) # => 3:5
La desestructuración trabaja a cualquier nivel de anidamiento. Por ejemplo, puedes usarla para extraer datos de listas dentro de listas/
[uno, [dos, tres]] = [1, [2, 3]]
print(uno, dos, tres) # => 1 2 3
Desestructuración en bucles
Puedes descomponer una lista no solo como una instrucción independiente en el código, sino también en bucles 🔄
points = [
[4, 3],
[0, -3]
]
for x, y in points:
print([x, y])
# => [ 4, 3 ]
# => [ 0, -3 ]
En este ejemplo, cada elemento en el bucle es una lista. Sin desestructuración, el bucle se ve así:
for item in points:
print(item)
Dentro del for, la variable item es una lista, por lo que puedes sustituirla por la desestructuración [x, y].
Desestructuración de palabras
En python, las palabras se comportan de manera similar a las listas y también se pueden desestructurar.
[primero, segundo, tercero] = 'dos'
print(primero) # => 'd'
print(segundo) # => 'o'
print(tercero) # => 's'
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.