Trate [(val,)] = t
In [8]: t = [("asdf",)]
In [9]: (val,) = t
In [10]: val
Out[10]: ('asdf',)
In [11]: [(val,)] = t
In [12]: val
Out[12]: 'asdf'
no creo que hay una manera limpia de hacerlo.
val = t[0][0]
es mi elección inicial, pero parece un poco feo.
[(val,)] = t
también funciona, pero se ve feo también. Supongo que depende de cuál es más fácil de leer y de qué quiere parecer menos feo, val
o t
Me gustó la idea de Lior de que desempaquetar la lista y la tupla contenga una afirmación.
In [16]: t2 = [('asdf',), ('qwerty',)]
In [17]: [(val,)] = t2
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-17-73a5d507863a> in <module>()
----> 1 [(val,)] = t2
ValueError: too many values to unpack
Acabo de probar esto y no funciona. Desafortunadamente no se aleja de la lista inicial. –
El ejemplo en la pregunta funciona. ¿Qué trataste de hacer exactamente? – Lior
Mis disculpas, lo intenté de nuevo y funciona. No estoy seguro de por qué no funcionó antes; todo lo que puedo pensar es que dejé ',' después del 'valor'. –