如何将字典值分配给 Python 中的变量?

Posted

技术标签:

【中文标题】如何将字典值分配给 Python 中的变量?【英文标题】:How do I assign a dictionary value to a variable in Python? 【发布时间】:2012-11-05 17:39:21 【问题描述】:

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

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

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

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

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

【问题讨论】:

这并不完全清楚。 new_variable 是从哪里来的?如果您尝试对字典中的值进行更新分配,只需执行 my_dict['foo'] += 1 或其他操作。 【参考方案1】:

试试这个。它对我有用。

>>> d = 'a': 1, 'b': 2
>>> locals().update(d)
>>> print(a)
1

【讨论】:

【参考方案2】:

我喜欢以下方式,因为您可以将字典键与变量名匹配。此示例显示了如何将 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

【讨论】:

【参考方案3】:

您正在尝试对不存在的变量进行操作

new_variable += variable

new_variable 没有定义,所以你不能增加它。试试吧。

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

我假设 my_dictionary 只是伪代码,实际上并不是您在代码中使用的定义,否则这也是无效的。

【讨论】:

【参考方案4】:

您的代码中存在各种错误。首先,您忘记了第一行中的=。此外,在 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

【讨论】:

【参考方案5】:

这不是您创建字典的方式。这是正确的语法:

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

最后的逗号是不必要的,但可以减少后续编辑出错的可能性。你也可以这样做:

my_dictionary = dict(foo=10, bar=20)

您可以使用+= 运算符来更新字典值:

my_dictionary['foo'] += 30

【讨论】:

【参考方案6】:

当你定义字典时你会得到一个SyntaxError,因为你做错了。尝试查看另一个 Python 程序(或文档),并按照那里显示的方式进行操作,而不是随随便便。

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

数学部分在语法上很好,但你做的比你需要的要难:

my_dictionary['foo'] += whatever

【讨论】:

【参考方案7】:

此代码未分配变量my_dictionary。试试:

my_dictionary = 
    'foo'...

另外,您需要在dict 中使用冒号进行键值初始化。例如:'foo' : 10

编辑:忘了说,如果你使用+=来改变一个变量,这个变量必须事先存在。

【讨论】:

以上是关于如何将字典值分配给 Python 中的变量?的主要内容,如果未能解决你的问题,请参考以下文章

核心数据 - 如何将核心数据中的属性值分配给变量

当我将一个字典分配给另一个变量时,为啥 Python 会同时更新两个字典? [复制]

根据字典键将字典值分配给 DataFrame 列

如何将 python 对象(如字典)分配给 pandas 列

如何将插入的输出值分配给 sql server 中的变量? [复制]

如何将从函数返回的布尔值分配给 PostgreSQL 9.4 中的变量?