<分区>
PHP 有一个名为 extract() 的函数,它采用关联数组作为参数,并根据键创建局部变量,键的值被分配给键的值。有没有办法在 Python 中做到这一点?快速谷歌搜索并没有立即告诉我如何。我怀疑 exec() 有一种方法,但如果有一些函数可以帮我做就更好了。
标签 php python dictionary
<分区>
PHP 有一个名为 extract() 的函数,它采用关联数组作为参数,并根据键创建局部变量,键的值被分配给键的值。有没有办法在 Python 中做到这一点?快速谷歌搜索并没有立即告诉我如何。我怀疑 exec() 有一种方法,但如果有一些函数可以帮我做就更好了。
最佳答案
因为它是not safe修改 locals() 返回的字典
>>> d={'a':6, 'b':"hello", 'c':set()}
>>> exec '\n'.join("%s=%r"%i for i in d.items())
>>> a
6
>>> b
'hello'
>>> c
set([])
但是像这样使用 exec 是丑陋的。你应该重新设计,这样你就不需要动态添加到你的本地命名空间
编辑:请参阅 Mike 在评论中对使用 repr 的保留意见。
>>> d={'a':6, 'b':"hello", 'c':set()}
>>> exec '\n'.join("%s=d['%s']"%(k,k) for k in d)
>>> id(d['c'])
3079176684L
>>> id(c)
3079176684L
关于php - 有没有办法将 Python 中的字典提取到本地 namespace 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2316764/