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

StackOverflow https://stackoverflow.com/questions/431944

Вопрос

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

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

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

Это было полезно?

Решение

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

l = list(t)

Другие советы

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

foo, bar, *other = funct()

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

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

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

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

total_columns = len(the_tuple)

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

my_list = list(the_tuple)

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top