web-dev-qa-db-fra.com

Pour convertir une chaîne en nom de variable

J'ai de la ficelle. comme 'buffalo',

x='buffalo'

Je veux convertir cette chaîne en un nom de variable comme,

buffalo=4 

non seulement cet exemple, je veux convertir n'importe quelle chaîne d'entrée en un nom de variable. Comment dois-je faire cela (en python)?

82
x='buffalo'    
exec("%s = %d" % (x,2))

Après cela, vous pouvez le vérifier par:

print buffalo

En sortie, vous verrez: 2

92
StefanW

C’est la meilleure façon, à ma connaissance, de créer des variables dynamiques en python.

my_dict = {}
x = "Buffalo"
my_dict[x] = 4

J'ai trouvé une question similaire, mais pas la même question, ici Création de variables nommées dynamiquement à partir d'une entrée utilisateur

[Édité selon la suggestion de Martijn]

23
phntmasasin

Vous pouvez utiliser un dictionnaire pour garder une trace des clés et des valeurs.

Par exemple...

dictOfStuff = {} ##Make a Dictionary

x = "Buffalo" ##OR it can equal the input of something, up to you.

dictOfStuff[x] = 4 ##Get the dict spot that has the same key ("name") as what X is equal to. In this case "Buffalo". and set it to 4. Or you can set it to  what ever you like

print(dictOfStuff[x]) ##print out the value of the spot in the dict that same key ("name") as the dictionary.

Un dictionnaire est très similaire à un dictionnaire de la vie réelle. Vous avez un mot et vous avez une définition. Vous pouvez rechercher le mot et obtenir la définition. Donc, dans ce cas, vous avez le mot "Buffalo" et sa définition est 4. Elle peut fonctionner avec n’importe quel autre mot ou définition. Assurez-vous simplement de les mettre d'abord dans le dictionnaire.

14
DeadChex