2013-07-23 43 views
2

我對Python很新穎,想知道如何將下面的鍵 - >值對字典轉換爲key-> [value],即我的值是一個列表,以便我可以追加更多元素到列表中。 我的字典如下:將字典值轉換爲值列表python

{'Mississippi': '28', 'Oklahoma': '40', 'Delaware': '10', 'Minnesota': '27', 'Illinois': '17', 'Arkansas': '05', 'New Mexico': '35', 'Indiana': '18', 'Maryland': '24'} 

我怎麼能轉換爲:

{'Mississippi': ['28'], 'Oklahoma': ['40'], 'Delaware': ['10'], 'Minnesota': ['27'], 'Illinois': ['17'], 'Arkansas': ['05'], 'New Mexico': ['35'], 'Indiana': ['18'], 'Maryland': ['24']} 

於是,我就這樣做:

dict_cntrycodes= {k: [v] for k,[v] in cntry_codes} 

但我剛開ERROR:太多值解壓。

有什麼建議嗎?

回答

4
>>> testDict = {'Mississippi': '28', 'Oklahoma': '40', 'Delaware': '10', 'Minnesota': '27', 'Illinois': '17', 'Arkansas': '05', 'New Mexico': '35', 'Indiana': '18', 'Maryland': '24'} 

>>> {k: [v] for k, v in testDict.items()} 
{'Mississippi': ['28'], 'Oklahoma': ['40'], 'Delaware': ['10'], 'Minnesota': ['27'], 'Illinois': ['17'], 'Arkansas': ['05'], 'New Mexico': ['35'], 'Indiana': ['18'], 'Maryland': ['24']} 

由於第一個字典中的鍵是字符串而不是列表,因此您將獲取太多值來解壓縮錯誤。以下作品。

>>> elem = "abc" 
>>> [elem] = ['abc'] 

但是,這給出了一個錯誤。

>>> [elem] = "abc" 

Traceback (most recent call last): 
    File "<pyshell#64>", line 1, in <module> 
    [elem] = "abc" 
ValueError: too many values to unpack 

這是因爲你試圖解壓三個要素('a', 'b', 'c')一個元素elem

如果你這樣做,如果你想編輯您原來的字典,然後做這個問題消失

>>> [a, b, c] = "abc" 
>>> print a, b, c 
a b c 
+1

謝謝! –

+0

不客氣。當系統允許時,隨時接受答案。 :) –

1

d = {'Mississippi': '28', 'Oklahoma': '40', 'Delaware': '10', 'Minnesota': '27', 'Illinois': '17', 'Arkansas': '05', 'New Mexico': '35', 'Indiana': '18', 'Maryland': '24'} 
for i in d: d[i] = [d[i]]