【问题标题】:How do I assign a dictionary value to a variable in Python?如何将字典值分配给 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 或其他操作。

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


【解决方案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

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2023-03-24
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-03-27
                • 1970-01-01
                • 1970-01-01
                • 2021-09-11
                相关资源
                最近更新 更多