Как назначить значение словаря переменной в Python?

Я любитель, когда дело доходит до программирования, но я пробую свои силы в Python. В основном я хочу иметь возможность использовать математику для словарного значения. Единственный способ, которым я мог бы это сделать, - назначить значение словаря переменной, а затем назначить новое значение словарю. Что-то вроде этого:--2-->

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

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

однако, когда я пытаюсь назначить переменную таким образом, я получаю синтаксическую ошибку. Есть лучший и простой способ сделать это?

изменить: Кроме того, я использую это только в качестве примера. Допустим, это блок кода, а не вся программа. Тот факт, что новая переменная не была объявлена, совершенно не имеет значения, я просто хочу знать, как выполнить математику для словарного значения. Кроме того, я пытаюсь получить доступ к словарю вне функции, в которой у меня есть код.

5 ответов


в вашем коде есть различные ошибки. Сначала вы забыли = в первой строке. Кроме того, в определении dict вы должны использовать : чтобы отделить ключи от значений.

следующее, что вы должны определить new_variable сначала, прежде чем вы можете добавить что-то к нему.

это будет работать:

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

но вы можете просто добавить new_variable непосредственно к записи 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

этот код не назначает переменную my_dictionary. Попробуйте:

my_dictionary = {
    'foo'...

кроме того, вам нужно использовать двоеточия для инициализации значения ключа в dict. Например: 'foo' : 10

EDIT: забыл упомянуть, если вы используете += чтобы изменить переменную, переменная должна существовать заранее.


вы получаете SyntaxError когда вы определяете словарь, потому что вы делаете все это неправильно. Попробуйте посмотреть на другую программу Python (или документацию) и сделать это так, как она там показана, а не просто размахивать ею.

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

математическая часть прекрасна синтаксически, но вы делаете это намного сложнее, чем вам нужно:

my_dictionary['foo'] += whatever

вы пытаетесь работать с переменной, которая не существует

new_variable += variable

new_variable не определен, поэтому вы не можете увеличить его. Просто попробовать.

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

Я предполагаю, что my_dictionary - это просто псевдокод, а не определение, которое вы используете в своем коде, иначе это тоже недействительно.


Мне нравится следующий способ, потому что вы можете сопоставить ключ словаря с именем переменной. В этом примере показано, как вы можете сопоставить символ с соответствующим именем переменной (и это имя переменной даже продиктовано другими переменными):

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]

выход:

70

90

110