在Python 中將[key1,val1,key2,val2] 列表轉換為字典
在Python 中,經常會遇到其中每個列表元素對映射到字典中的鍵值對。要將此類列表轉換為字典,語法上最優雅的方法是結合使用內建的 zip() 函數和字典構造。
例如,給定一個具有交替鍵和值的列表a:
a = ['hello','world','1','2']
我們可以有效地創建一個字典b,其中a 中的每個鍵映射到其對應的值,如下所示:
b = dict(zip(a[::2], a[1::2]))
這裡,a[::2] 提取偶數元素,表示鍵,a[1::2]提取奇數元素,表示值。然後 dict() 建構子將這些列表組合成字典。
對於較大的列表,節省記憶體的替代方案是利用itertools.izip() 函數,該函數成對迭代地使用a 中的元素:
from itertools import izip i = iter(a) b = dict(izip(i, i))
在Python 3中,使用dict 理解和range():
b = {a[i]: a[i+1] for i in range(0, len(a), 2)}
或者,可以直接使用zip()函數,因為它在Python 3 中是惰性的:
i = iter(a) b = dict(zip(i, i))
為了簡潔起見,「海象」 Python 3.8 及更高版本中可以使用運算子(:=) 在單行中執行賦值操作:
b = dict(zip(i := iter(a), i))
以上是如何有效地將交替鍵和值的 Python 列表轉換為字典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!