如何在Python中为变量分配字典值?

时间:2012-11-16 23:42:09

标签: python variables dictionary variable-assignment key-value

在编程方面,我是一名业余爱好者,但我正在尝试使用Python。基本上我想要做的是在字典值上使用数学。我能想到的唯一方法是将字典值分配给变量,然后将新值分配给字典。像这样:

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

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

但是,当我尝试以这种方式分配变量时,我收到语法错误。有没有更好,更直接的方法来做到这一点?

编辑:另外,我只是以此为例。假设这是一段代码,而不是整个程序。新变量尚未声明的事实完全无关紧要,我只想知道如何对字典值执行数学运算。 另外,我试图访问我的代码所在函数之外的字典。

6 个答案:

答案 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