Python - эффективный способ создания 20 переменных? - PullRequest
0 голосов
/ 13 июля 2011

Мне нужно создать 20 переменных в Python.Все эти переменные необходимы, они должны быть вначале пустыми строками, а затем пустые строки будут заменены другими строками.Я не могу создавать переменные по мере необходимости, когда они необходимы, потому что у меня также есть некоторые операторы if / else, которые должны проверить, являются ли переменные по-прежнему пустыми или уже равны другим строкам.

Вместо записи

variable_a = ''
variable_b = ''
....

Я думал, что-то вроде

list = ['a', 'b']
for item in list:
    exec("'variable_'+item+' = '''")

Этот код не приводит к ошибке, но все же не делает то, что я ожидал - переменные не создаются с именами "variable_1и так далее.

Где моя ошибка?

Спасибо, Дятел

Ответы [ 3 ]

10 голосов
/ 13 июля 2011

Где моя ошибка?

Возможно три ошибки.Во-первых, 'variable_' + 'a' явно не равно 'variable_1'.Второе - это цитата в аргументе exec.Сделайте

for x in list:
    exec("variable_%s = ''" % x)

, чтобы получить variable_a и т. Д.

Третья ошибка заключается в том, что вы не используете list или dict для этого.Просто сделайте

variable = dict((x, '') for x in list)

, затем получите содержимое «variable» a с помощью variable['a'].Не борись с языком.Используйте это.

0 голосов
/ 13 июля 2011

никогда не использовал его, но что-то вроде этого может работать:

liste = ['a', 'b']
for item in liste:
    locals()[item] = ''
0 голосов
/ 13 июля 2011

У меня тот же вопрос, что и у других (о том, что я не использую список или хэш), но если вам нужно, вы можете попробовать это:

for i in xrange(1,20):
    locals()['variable_%s' %i] = ''

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...