2013-06-04 42 views
5

我有很多的名單格式如下:創建字典從列表蟒蛇

['1', 'O1', '', '', '', '0.0000', '0.0000', '', ''] 
['2', 'AP', '', '', '', '35.0000', '105.0000', '', ''] 
['3', 'EU', '', '', '', '47.0000', '8.0000', '', ''] 

我需要創建一個字典,鍵在列表中的第一個元素和值的完整列表。沒有任何鍵正在重複。 這樣做的最好方法是什麼?

回答

5

把所有的名單在另一個列表,這樣做:

my_dict = {} 
for list in lists: 
    my_dict[list[0]] = list[:] 

這基本上得到的第一個元素,並把它作爲my_dict的關鍵,並把列表作爲值。

7
>>> lists = [['1', 'O1', '', '', '', '0.0000', '0.0000', '', ''], 
['2', 'AP', '', '', '', '35.0000', '105.0000', '', ''], 
['3', 'EU', '', '', '', '47.0000', '8.0000', '', '']] 
>>> {x[0]: x for x in lists} 
{'1': ['1', 'O1', '', '', '', '0.0000', '0.0000', '', ''], '3': ['3', 'EU', '', '', '', '47.0000', '8.0000', '', ''], '2': ['2', 'AP', '', '', '', '35.0000', '105.0000', '', '']} 
+0

非常感謝:)真的幫助 –

+0

但是,如果我需要爲每個列表製作單獨的字典並且我不想合併列表,我該怎麼辦? –

+0

@wannabe_geek你必須保持你的名單莫名其妙。將它們全部放在一個列表中是最簡單的方法。如果你願意,你可以使用鏈表等其他東西。您的輸出遵循相同的規則。你必須把它保存在某個地方。字典是最好的選擇。 – AliBZ

0

如果你的索引是連續整數,你可以使用一個列表,而不是一個字典的:

lst = [None]+[x[1:] for x in sorted(lists)] 

只使用它,如果它真的適合你的問題,但。