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

Если я явно добавлю имя базы данных, она будет работать.

10
задан Zero Piraeus 20 July 2013 в 17:24
поделиться

3 ответа

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

l = list(t)
7
ответ дан 3 December 2019 в 15:06
поделиться

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

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

total_columns = len(the_tuple)

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

my_list = list(the_tuple)

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

Я думаю, что необходимо разъяснить точно, что Вы пытаетесь сделать здесь.

3
ответ дан 3 December 2019 в 15:06
поделиться

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

foo, bar, *other = funct()

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

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

20
ответ дан 3 December 2019 в 15:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: