Как назначить значение словаря переменной в 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