generating variable names on fly in python [duplicate]
генерация имен переменных на лету в python
Есть ли способ, которым я могу генерировать имена переменных в python в цикле и присваивать им значения? Например, если у меня есть
prices = [5, 12, 45]
Я хочу
price1 = 5 price2 = 12 price3 = 45
Могу ли я сделать это в цикле или что-то в этом роде вместо ручного присвоения price1 = prices[0], price2 = prices[1] и т.д.
Спасибо.
Редактировать
Многие люди предлагали мне написать причину, по которой это требуется. Во-первых, были моменты, когда я думал, что это может быть удобнее, чем использование списка...Я не помню точно, когда, но мне кажется, я думал об использовании этого, когда существует много уровней вложенности. Например, если у вас есть список списков списков, определение переменных описанным выше способом может помочь снизить уровень вложенности. Во-вторых, сегодня я подумал об этом, пытаясь научиться использовать Pytables. Я только что наткнулся на Pytables и увидел, что при определении структуры таблицы имена и типы столбцов описываются следующим образом:
Если у меня 100 столбцов, ввод имени каждого столбца явно кажется большой работой. Итак, я задался вопросом, есть ли способ генерировать эти имена столбцов "на лету".
Переведено автоматически
Ответ 1
Если вы действительно хотите создавать их "на лету", вы можете присвоить dict, который возвращается либо globals(), либо locals() в зависимости от того, в каком пространстве имен вы хотите их создать:
globals()['somevar'] = 'someval' print somevar # prints 'someval'
Но я бы не рекомендовал этого делать. В общем, избегайте глобальных переменных. Использование locals() часто просто скрывает то, что вы на самом деле делаете. Вместо этого создайте свой собственный dict и присвоите ему значение.