相关疑难解决方法(0)

将字典条目转换为变量 - python

是否有一种pythonic方法将字典值分配给其键,以便将字典条目转换为变量?我试过这个:

>>> d = {'a':1, 'b':2}
>>> for key,val in d.items():
        exec('exec(key)=val')

        exec(key)=val
                 ^ 
        SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

更新:也许我应该更具体:我确实知道键值对是正确的,因为它们之前被我定义为变量.然后我将这些变量存储在字典中(作为键值对),并希望在不同的函数中重用它们.我可以在新函数中重新定义它们,但因为我可能有一个包含大约20个条目的字典,我认为可能有一种更有效的方法.

python dictionary

32
推荐指数
6
解决办法
4万
查看次数

有什么方法可以修改本地词典吗?

locals是一个内置函数,返回本地值的字典.文件说:

警告

不应修改此词典的内容; 更改可能不会影响解释器使用的局部变量的值.

不幸的是,exec在Python 3.0中也有同样的问题.这有什么办法吗?

用例

考虑:

@depends("a", "b", "c", "d", "e", "f")
def test():
    put_into_locals(test.dependencies)
Run Code Online (Sandbox Code Playgroud)

depends将其参数中提供的字符串存储在列表中test.dependences.这些字符串是字典中的键d.我希望能够编写,put_into_locals以便我们可以将值拉出d并将它们放入本地.这可能吗?

python local-variables

14
推荐指数
3
解决办法
1万
查看次数

locals().update(kwargs)无效

class Foo(object):

    def __init__(self, x):
        self.bar(x=x)

    def bar(self, **kwargs):
        print kwargs
        locals().update(kwargs)
        print x


f = Foo(12)
Run Code Online (Sandbox Code Playgroud)

这似乎很明显,但它不起作用,第一个打印输出{'x': 12},这是正确的,然而,我得到这个错误:NameError: global name 'x' is not defined

为什么会这样?谢谢.

python

7
推荐指数
1
解决办法
590
查看次数

标签 统计

python ×3

dictionary ×1

local-variables ×1