7
votes

Python: Insertion d'une valeur variable dans un nom de variable

Je voudrais insérer la valeur d'une variable dans le nom d'une autre variable dans Python. Dans un script shell, ce serait quelque chose comme: xxx

mais je ne peux pas voir comment faire une chose similaire à Python. Y a-t-il un moyen ou devrais-je utiliser une approche alternative?
merci
Andy


1 commentaires

Dans un script shell, cela n'est pas non plus correct. Vous devez utiliser un eval


5 Réponses :


0
votes

Un dict est un moyen de maintenir un tableau associatif.

dict = {}
dict[str] = calc();


1 commentaires

Ne nommez jamais votre dict " dict "; Cette ombres est le type dictune , qui est le type de dictionnaire, que vous devrez peut-être appeler à un moment donné.



14
votes

Ne le faites pas! Avoir des noms variables qui changent en fonction de la valeur d'une variable conduit à des complications inutiles. Un moyen plus propre consiste à utiliser un dictionnaire: xxx


2 commentaires

Merci! (et à d'autres réponses). Cela semble moins fragile que mon approche de script shell aussi.


Ouais pour cette tâche dict va bien, mais qu'est-ce que lorsque une certaine valeur arrive et j'ai déjà défini des valeurs. Je pouvais juste prendre des exceptions et faire: Essayez: classe. {type} ... Je sais que cela vient de PHP mais ça sauve tellement de nerfs ..



0
votes

Peut-être pas parfait, mais deux solutions possibles: xxx


1 commentaires

Mais sachez que l'approche locals () ne fonctionne pas dans les fonctions. Voir ici: forums.duevshed.com/python-programming -11 / ... Il est toujours valide, je l'ai testé.



3
votes
for n in more_list:
    globals()["var_"+str(n)]=some_calculation

1 commentaires

Y a-t-il un moyen d'utiliser cela dans une classe? comme soi-même. ["var_" + str (n)] = valeur ???



1
votes

Fondamentalement, il ne préfère pas avoir une variable comme var1 = foo var2 = bar Var $ {id} est en fait un groupe de variables avec des caractéristiques similaires, c'est pourquoi vous souhaitez nommer de telles manières. Essayez d'utiliser la liste ou dicter quelles variables de groupe de manière plus efficace!


0 commentaires