Нужно создание справочной переменной в Python

Я хочу создать переменные как a1, a2, a3 ... a10. Для этого я использовал цикл for. Поскольку переменная в цикле увеличивается, мне нужно создать переменную, как указано выше.

Кто-нибудь может дать мне идею?

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

Вот где я получаю синтаксическую ошибку.

Почему бы вам не использовать для этого массив?

schnaader 17.12.2008 16:50

Размещение кода, вызывающего ошибку SyntaxError, было бы хорошей идеей.

muhuk 17.12.2008 17:03
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
2 106
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Обычно мы используем список, а не набор отдельных переменных.

a = 10*[0]
a[0], a[1], a[2], a[9]

Вы можете использовать функцию exec:

for i in range(0,10):
   exec("a%d=%d" % (i,i))

Не очень питонический способ делать что-то.

(Я не голосовал против) Это правильно, но не очень полезно для программиста Python, который хочет подражать. Вопросы намекают на необходимость руководства.

tzot 18.12.2008 00:51

exec не является функцией (в 2.x); круглые скобки не нужны.

Martin v. Löwis 18.12.2008 10:07

@Martin v. Löwis: их установка работает в 2.5.2 ... В любом случае код решает вопрос, но я согласен с ΩΤΖΙΟΥ, также должна быть подсказка "питонизм";)

Andrea Ambu 27.01.2009 14:28
Ответ принят как подходящий

Следуя тому, что сказал С.Лотт, вы также можете использовать dict, если вам действительно нужны уникальные имена и порядок элементов не важен:

data = {}
for i in range(0, 10):
  data['a%d' % i] = i

>>>data
{'a1': 1, 'a0': 0, 'a3': 3, 'a2': 2, 'a5': 5, 'a4': 4, 'a7': 7, 'a6': 6, 'a9': 9, 'a8': 8}

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

globals() возвращает глобальный словарь переменных:

for i in range(1,6):
    globals()["a%i" % i] = i

print a1, a2, a3, a4, a5      # -> 1 2 3 4 5

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

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