在编程方面,我是一名业余爱好者,但我正在尝试使用Python。基本上我想要做的是在字典值上使用数学。我能想到的唯一方法是将字典值分配给变量,然后将新值分配给字典。像这样:
my_dictionary {
'foo' = 10,
'bar' = 20,
}
variable = my_dictionary['foo']
new_variable += variable
my_dictionary['foo'] = new_variable
但是,当我尝试以这种方式分配变量时,我收到语法错误。有没有更好,更直接的方法来做到这一点?
编辑:另外,我只是以此为例。假设这是一段代码,而不是整个程序。新变量尚未声明的事实完全无关紧要,我只想知道如何对字典值执行数学运算。 另外,我试图访问我的代码所在函数之外的字典。
答案 0 :(得分:13)
您的代码中存在各种错误。首先,您忘记了第一行中的=
。此外,在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
答案 1 :(得分:1)
尝试一下。它为我工作。
>>> d = {'a': 1, 'b': 2}
>>> locals().update(d)
>>> print(a)
1
答案 2 :(得分:0)
此代码不分配变量my_dictionary
。尝试:
my_dictionary = {
'foo'...
此外,您需要在dict
中使用冒号进行键值初始化。例如:'foo' : 10
编辑:忘记提及,如果您使用+=
更改变量,则变量必须事先存在。
答案 3 :(得分:0)
当你定义字典时,你得到一个SyntaxError
,因为你做错了。尝试查看另一个Python程序(或文档),并按照它在那里显示的方式进行,而不是仅仅展示它。
my_dictionary = {'foo': 10, 'bar': 20}
数学部分在语法上很好,但是你要比你需要的更难:
my_dictionary['foo'] += whatever
答案 4 :(得分:0)
您正在尝试对不存在的变量进行操作
new_variable += variable
new_variable未定义,因此您无法递增它。只需尝试。
my_dictionary['foo'] += my_dictionary['foo']
我假设my_dictionary只是伪代码,实际上并不是你在代码中使用的定义,否则也是无效的。
答案 5 :(得分:0)
我喜欢以下方式,因为您可以将字典键与变量名匹配。此示例显示如何将char与相应的变量名称匹配(并且该变量名称甚至由其他变量决定):
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