Il y a quelques façons de faire, le meilleur dépendra de ce que vous voulez vraiment faire avec les variables après les avoir créées.
globals()
et locals()
fonctionnera mais ils ne sont pas ce que vous voulez. exec()
fonctionnera également mais c'est encore pire que globals()
et locals()
.
Une compréhension de la liste comme mentionné par @ user166390 est une bonne idée si v1
, v2
et v3
sont homogènes et que vous voulez juste y accéder par index.
>>> v = [i ** 2 for i in range(3)]
>>> v[0]
0
>>> v[1]
1
>>> v[2]
4
Vous pouvez aussi le faire, si elle est toujours exactement trois éléments:
>>> v1, v2, v3 = [i ** 2 for i in range(3)]
>>> v1
0
>>> v2
1
>>> v3
2
C'est bien si les objets sont plus individuels parce que vous pouvez leur donner leur propre nom.
Une autre entre-deux option consiste à utiliser un dict
:
d = {}
for i, val in enumerate(range(3)):
d["v{}".format(i)] = val
>>> d["v0"]
0
>>> d["v1"]
1
>>> d["v2"]
4
Ou un raccourci pour ce qui précède à l'aide d'une compréhension dict:
d = {"v{}".format(i): val for i, val in enumerate(range(3))}
Qu'est-ce que cela a à voir avec la question dans votre Titre? Mieux encore, pourquoi voudriez-vous le faire? – NullUserException
Veuillez utiliser une 'liste'. – kennytm
Il existe des façons de le faire, mais vous feriez probablement mieux d'attribuer à une autre liste et d'accéder ensuite à cette liste par index. –