Python: распаковать неизвестное количество переменных?
Как я могу распаковать кортеж неизвестного, скажем, списка?
У меня есть несколько столбцов данных, и они разделяются на кортеж какой-то функцией. Я хочу распаковать этот кортеж в переменные, но я не знаю, сколько столбцов у меня будет. Есть ли способ динамически распаковать его на столько переменных, сколько мне нужно?
Спасибо за помощь :)
3 ответов
звездочку можно использовать для распаковки переменной длины. Например:
foo, bar, *other = funct()
это должно поместить первый элемент в foo
, второй в bar
, а все остальное в other
.
обновление: Я забыл упомянуть, что это Python 3.0 совместим только.
вы имеете в виду, что хотите создавать переменные на лету? Как ваша программа будет знать, как ссылаться на них, если они динамически создаются?
кортежи имеют длину, как и списки. Это совершенно допустимо, чтобы сделать что-то вроде:
total_columns = len(the_tuple)
вы также можете преобразовать Кортеж в список, хотя это не принесет никакой пользы, если вы не хотите начать изменять результаты. (Кортежи не могут быть изменены; списки могут.) Но, в любом случае, преобразование кортежа в список тривиально:
my_list = list(the_tuple)
здесь are способы создания переменных "на лету" (например,eval
), но опять же, как бы вы знали, как относятся к ним?
Я думаю, что вы должны уточнить, что именно вы пытаетесь сделать здесь.