首頁 >後端開發 >Python教學 >如何有效地將交替鍵和值的 Python 列表轉換為字典?

如何有效地將交替鍵和值的 Python 列表轉換為字典?

Patricia Arquette
Patricia Arquette原創
2024-12-08 13:38:101040瀏覽

How Can I Efficiently Convert a Python List of Alternating Keys and Values into a Dictionary?

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn