将dict内容分配给自变量

时间:2013-02-15 20:03:36

标签: python list python-2.7 defaultdict

如何将defaultdict拆分为独立列表,其中键作为列表名,值作为列表元素。

例如:

defaultdict ([('A', [1, 3, 4]), ('B', [3, 6, 8])])

我如何获得:

A= [1,3,4]
B= [3,6,8]

1 个答案:

答案 0 :(得分:1)

我很抱歉,但一般情况下你不能,你不应该尝试。

这样做的一个明显原因是你需要强制执行dict键是有效的Python名称(甚至任何字符串都不起作用,更不用说处理非字符串键了。)

另一个原因是,即使密钥 是有效名称,您也可以无法预测地覆盖碰巧具有此名称的其他对象。它可能是一个内置函数或任何东西,它可以以任何可能的方式破坏你的脚本。

如果你不相信,你可以尝试这样的事情:

In [1]: d = {'A': [1, 3, 4], 'B': [3, 6, 8]} # a defaultdict would work, too

In [2]: for k, v in d.items():
   ...:     globals()[k] = v
   ...:     

In [3]: A
Out[3]: [1, 3, 4]

In [4]: B
Out[4]: [3, 6, 8]

要阅读的文档: