it-roy-ru.com

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

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

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

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

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

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

9
floatingeyecorpse

В вашем коде есть разные ошибки. Сначала вы забыли = в первой строке. Кроме того, в определении 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
13
nkr

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

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

0
Dylan Kapp

Этот код не назначает переменную my_dictionary. Пытаться:

my_dictionary = {
    'foo'...

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

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

0
jma127

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

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

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

my_dictionary['foo'] += whatever
0
kindall

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

new_variable += variable

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

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

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

0
Aesthete