web-dev-qa-db-fra.com

Comment attribuer une valeur de dictionnaire à une variable en Python?

Je suis un amateur en programmation, mais je m'essaye à Python. Fondamentalement, ce que je veux être capable de faire est d'utiliser les mathématiques sur une valeur de dictionnaire. La seule façon pour moi de le faire serait d’attribuer une valeur de dictionnaire à une variable, puis d’attribuer la nouvelle valeur au dictionnaire. Quelque chose comme ça:

my_dictionary {
    'foo' = 10,
    'bar' = 20,
    }

variable = my_dictionary['foo']
new_variable += variable
my_dictionary['foo'] = new_variable

Cependant, lorsque j'essaie d'assigner une variable de cette manière, j'obtiens une erreur de syntaxe. Existe-t-il un moyen plus simple et plus simple de procéder? 

EDIT: En outre, je ne l'utilise qu'à titre d'exemple. Disons qu'il s'agit d'un bloc de code et non de l'ensemble du programme. Le fait que la nouvelle variable n'ait pas été déclarée est totalement sans importance, je veux juste savoir comment effectuer un calcul mathématique avec une valeur de dictionnaire. En outre, j'essaie d'accéder à un dictionnaire en dehors de la fonction dans laquelle mon code est inséré. 

9
floatingeyecorpse

Il y a diverses erreurs dans votre code. D'abord, vous avez oublié le = dans la première ligne. De plus, dans une définition dictée, vous devez utiliser : pour séparer les clés des valeurs.

Ensuite, vous devez d'abord définir new_variable avant de pouvoir ajouter quelque chose.

Cela fonctionnera:

my_dictionary = {'foo' : 10, 'bar' : 20}

variable = my_dictionary['foo']
new_variable = 0 # Get the value from another place
new_variable += variable
my_dictionary['foo'] = new_variable

Mais vous pouvez simplement ajouter new_variable directement à l'entrée dict:

my_dictionary = {'foo' : 10, 'bar' : 20}

variable = my_dictionary['foo']
new_variable = 0 # Get the value from another place
my_dictionary['foo'] += new_variable
13
nkr

J'aime la manière suivante parce que vous pouvez associer une clé de dictionnaire à un nom de variable. Cet exemple montre comment associer un caractère à un nom de variable correspondant (ce nom de variable est même dicté par d'autres variables):

va1 = 50
val2= 20

a = val + 1 * val2
b = val + 2 * val2
space = val + 3 * val2

my_dictionary = {
'a':a,
'b':b,
' ':space
}

msg = "aB "
for char in msg:
    try:
        char = char.lower()
        print my_dictionary [char]
    except:
        print my_dictionary [char]

Sortie:

70

90

110

0
Dylan Kapp

Ce code n'affecte pas la variable my_dictionary. Essayer:

my_dictionary = {
    'foo'...

De plus, vous devez utiliser les deux points pour l'initialisation clé-valeur dans dict. Par exemple: 'foo' : 10

EDIT: oublié de mentionner, si vous utilisez += pour changer une variable, la variable doit exister auparavant.

0
jma127

Vous obtenez une SyntaxError lorsque vous définissez le dictionnaire parce que vous le faites mal. Essayez de regarder un autre programme Python (ou une autre documentation) et de le faire comme il est montré ici, plutôt que de simplement vous en servir.

my_dictionary = {'foo': 10, 'bar': 20}

La partie mathématique est très bien syntaxiquement, mais vous la rendez beaucoup plus difficile que vous n’avez besoin de:

my_dictionary['foo'] += whatever
0
kindall

Vous essayez d'opérer sur une variable qui n'existe pas

new_variable += variable

new_variable n'est pas défini, vous ne pouvez donc pas l'incrémenter. Essayez simplement.

my_dictionary['foo'] += my_dictionary['foo']

Je suppose que le my_dictionary est juste un pseudo-code, et non la définition que vous utilisez dans votre code, sinon, elle n'est pas valide également.

0
Aesthete