English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Exportar elementos de un array a variables utilizando Python (desempaquetado)

El problema resuelto

Se necesita exportar los elementos de un array (list) o tuple a N variables.

La solución

Cualquier secuencia puede asignar sus elementos a variables correspondientes de manera sencilla mediante asignación de variables, el único requisito es que la cantidad y estructura de las variables deben coincidir completamente con la estructura de la secuencia.

p = (1, 2)
x, y = p
# x = 1
# y = 2
datos = ['google', 100.1, (2016, 5, 31)]
nombre, precio, fecha = datos
# nombre = 'google'
# precio = 100.1
# fecha = (2016, 5, 31)
nombre, precio, (año, mes, día) = datos
# nombre = 'google'
# precio = 100.1
# año = 2016
# mes = 5
# día = 31

Si la estructura de la variable no coincide con la estructura de los elementos, se encontrará con el siguiente error:

p = (1, 2)
x, y, z = p
Traceback (llamada más reciente primero):
 Archivo "<pyshell#12">", línea 1, en <módulo>
  x, y, z = p
Error de Valor: no hay suficientes valores para desempaquetar (se esperaban 3, obtenido 2)

En realidad, esta operación no se limita a tuplas y listas, también se puede usar en cadenas. El desempaquetado admite la mayoría de las secuencias comunes que utilizamos, como iteradores de archivos, varios generadores, etc.

s = 'Hello'
a, b, c, d, e = s
# a = 'H'
# b = 'e'

Si desea descartar algunos elementos durante el proceso de exportación, Python realmente no admite tal sintaxis, pero puede especificar algunas variables no muy comunes para lograr este objetivo.

datos = ['google', 100.1, (2016, 5, 31)]
nombre, _, (_, mes, _) = datos
# nombre = 'google'
# mes = '5'
# otros campos serán descartados

Resumen

Esto es todo el contenido de este artículo, espero que el contenido de este artículo pueda ayudarles en su aprendizaje o trabajo. Si tienen alguna pregunta, pueden dejar un mensaje para discutir, gracias por su apoyo a la tutorial de alarido.

Te gustará también