我有什麼似乎是一個棘手的問題,但可能很簡單的解決方案。在Python中嵌套的字典嵌套的列表
我有一個嵌套列表,我希望每個列表中包含的第一個值是字典中的鍵。我希望將該列表中包含的所有其他元素作爲值添加到該密鑰中。
這裏是嵌套列表的一個示例:
stations[[1, 'carnegie', 12345, 30],[2, 'london', 12344, 30], [4, 'berlin', 1345563, 30]]
我想將其轉換爲一個字典的格式如下:
stations {1:['carnegie', 12345, 30], 2:['london', 12344, 30], 4:['berlin', 1345563, 30]}
嵌套列表是相當大的,所以我我只作爲樣本在這裏:)
我目前的嘗試已經產生了最好的選擇爲:
newDict = dict.fromkeys(stations,{})
這給了我:
{1: {}, 2:{}, 4:{}}
爲了這,我不知如何到兩個鍵和值相結合,使我的理想的字典。
對此的任何幫助將是偉大的。
編輯:
要增加,我希望能夠給一個變量名分配到字典與當前的解決方案提供如下:
{i[0] : i[1:] for i in stations}
這給我正確的在一個循環的輸出,但是當我在循環變量賦值給它,它給了我最終的關鍵:值字典中的
newDict = {}
for y in stations:
newDict = {y[0] : y[1:]}
print newDict
回報:
{4: ['berlin', 1345563, 30]}
謝謝!
在Python 3,你可以使用擴展的迭代解包語法,以避免指數和切片,如果你想:'{鍵:鍵值,*值在電臺}' – Blckknght 2014-08-30 15:50:02
這是做這項工作。但是,當我試圖將該循環的結果分配給一個變量時,它只給出了最後一個鍵和它的元素。即:'print newDict'返回'{4:['berlin',1345563,30]}'有沒有辦法來解決這個問題? – 2014-08-30 15:58:21
@BenW dict-comp已經*了* a *循環* - 你在循環中所做的一切就是不斷創建一個新的字典,每一個回合都有一個單獨的條目...拿cyber的代碼做:'newDict = {i [0]:我[1:]因爲我在電臺}' - 那裏亞去...全部完成... – 2014-08-30 16:13:34