我正在學習python。我有一個簡單條目的列表,我想將它轉換成一個字典,其中列表的第一個元素是第二個元素的關鍵字,第三個是第四個元素的關鍵字,依此類推。我該怎麼做?將簡單列表轉換爲字典(在Python中)
list = ['first_key', 'first_value', 'second_key', 'second_value']
在此先感謝!
我正在學習python。我有一個簡單條目的列表,我想將它轉換成一個字典,其中列表的第一個元素是第二個元素的關鍵字,第三個是第四個元素的關鍵字,依此類推。我該怎麼做?將簡單列表轉換爲字典(在Python中)
list = ['first_key', 'first_value', 'second_key', 'second_value']
在此先感謝!
myDict = dict(zip(myList[::2], myList[1::2]))
請不要使用「列表」作爲變量名,因爲它可以防止您訪問列表()函數。
如果有大量的數據參與,我們可以更有效地做到這一點使用迭代器功能:
from itertools import izip, islice
myList = ['first_key', 'first_value', 'second_key', 'second_value']
myDict = dict(izip(islice(myList,0,None,2), islice(myList,1,None,2)))
最簡潔的方式是
some_list = ['first_key', 'first_value', 'second_key', 'second_value']
d = dict(zip(*[iter(some_list)] * 2))
如果該列表是大的,你最終通過建立片或急於拉鍊浪費內存。一種更懶惰地轉換列表的方法是(ab)使用列表迭代器和izip
。
from itertools import izip
lst = ['first_key', 'first_value', 'second_key', 'second_value']
i = iter(lst)
d = dict(izip(i,i))
吻方式:
使用異常和迭代
myDict = {}
it = iter(list)
for x in list:
try:
myDict[it.next()] = it.next()
except:
pass
myDict
請從來沒有任何名稱列表(或'str'或'dict')。它用相同的名稱覆蓋內建。 – ThiefMaster 2011-03-09 17:08:07