php - 有没有办法将 Python 中的字典提取到本地 namespace 中?

标签 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/

相关文章:

php - 取消设置以预定前缀开头的多个索引

php - MySQL按2个类别计数

python - Python中概率密度函数的更快卷积

Python - 使用 McAfee Web API 时忽略自签名证书警告

python - 检查字典是否是另一个字典的子集

php - Codeigniter 从数据库加载颜色到 css 颜色选择器

php - 如何提高分页速度

python - 如何在 Python 的请求库中模拟 session ?

python - Pandas:Groupby 并使用剩余的列名和值创建字典

C++对象映射本地拷贝