2013-02-15 84 views
0

如何將defaultdict分隔爲獨立列表,其中鍵爲列表名稱和值作爲列表元素。將字典內容分配給獨立變量

例如:

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

如何獲得:

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

不要。 [將數據保留在變量名稱之外。](http://nedbatchelder.com/blog/201112/keep_data_out_of_your_variable_names.html) – delnan 2013-02-15 20:16:41

回答

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] 

文檔閱讀: