Нужно создать справочную переменную в Python - PullRequest
0 голосов
/ 17 декабря 2008

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

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

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

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

Ответы [ 4 ]

13 голосов
/ 17 декабря 2008

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

a = 10*[0]
a[0], a[1], a[2], a[9]
4 голосов
/ 17 декабря 2008

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

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}

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

2 голосов
/ 17 декабря 2008

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

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

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

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

0 голосов
/ 17 декабря 2008

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

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

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

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