Попробуйте [(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'
Я не думаю, что есть чистый способ сделать это.
val = t[0][0]
- это мой первоначальный выбор, но выглядит уродливо.
[(val, )] = t
тоже работает, но тоже выглядит некрасиво. Я думаю, это зависит от того, что легче читать и что вы хотите выглядеть менее уродливо, val
или t
Мне понравилась идея Лиора, что распаковка списка и кортежа содержит утверждение.
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