Есть несколько способов сделать это, лучший из которых будет зависеть от того, что вы на самом деле хотите делать с переменными после их создания.
globals()
и locals()
будут работать, но это не то, что вы хотите. exec()
также будет работать, но это даже хуже, чем globals()
и locals()
.
Понимание списка, упомянутое @ user166390, является хорошей идеей, если v1
, v2
и v3
однородны, и вы просто хотите получить к ним доступ по индексу.
>>> v = [i ** 2 for i in range(3)]
>>> v[0]
0
>>> v[1]
1
>>> v[2]
4
Вы также можете сделать это, если это всегда ровно три элемента:
>>> v1, v2, v3 = [i ** 2 for i in range(3)]
>>> v1
0
>>> v2
1
>>> v3
2
Это хорошо, если объекты более индивидуальны, потому что вы можете дать им свои собственные имена.
Другим промежуточным вариантом является использование dict
:
d = {}
for i, val in enumerate(range(3)):
d["v{}".format(i)] = val
>>> d["v0"]
0
>>> d["v1"]
1
>>> d["v2"]
4
Или ярлык для вышеперечисленного с использованием словосочетания:
d = {"v{}".format(i): val for i, val in enumerate(range(3))}