Python: распаковать неизвестное количество переменных?

Как я могу распаковать кортеж неизвестного, скажем, списка?

У меня есть несколько столбцов данных, и они разделяются на кортеж какой-то функцией. Я хочу распаковать этот кортеж в переменные, но я не знаю, сколько столбцов у меня будет. Есть ли способ динамически распаковать его на столько переменных, сколько мне нужно?

Спасибо за помощь :)

3 ответов


распаковать Кортеж в список?

l = list(t)

звездочку можно использовать для распаковки переменной длины. Например:

foo, bar, *other = funct()

это должно поместить первый элемент в foo, второй в bar, а все остальное в other.

обновление: Я забыл упомянуть, что это Python 3.0 совместим только.


вы имеете в виду, что хотите создавать переменные на лету? Как ваша программа будет знать, как ссылаться на них, если они динамически создаются?

кортежи имеют длину, как и списки. Это совершенно допустимо, чтобы сделать что-то вроде:

total_columns = len(the_tuple)

вы также можете преобразовать Кортеж в список, хотя это не принесет никакой пользы, если вы не хотите начать изменять результаты. (Кортежи не могут быть изменены; списки могут.) Но, в любом случае, преобразование кортежа в список тривиально:

my_list = list(the_tuple)

здесь are способы создания переменных "на лету" (например,eval), но опять же, как бы вы знали, как относятся к ним?

Я думаю, что вы должны уточнить, что именно вы пытаетесь сделать здесь.