將 '[key1,val1,key2,val2]' 轉換為字典:Python方法
問題:
在Python中,我們有一個具有交替鍵值結構的列表a,其中每個偶數元素代表一個字典鍵及其後續元素奇數元素就是對應的值。任務是將此列表轉換為字典 b,其中每個鍵值對都被適當地映射。
範例:
a = ['hello', 'world', '1', '2']
所需輸出:
b = {'hello': 'world', '1': '2'}
解:
解決這個問題最直接的方法是使用Python的dict()和zip() 函數。這是一個語法上乾淨的解決方案:
b = dict(zip(a[::2], a[1::2]))
這種方法非常有效並且達到了預期的結果。然而,如果效能是一個問題,另一種方法是使用Python 的迭代器工具:
from itertools import izip i = iter(a) b = dict(izip(i, i))
這種方法在處理非常大的列表時特別有用,因為它不會在列表中創建任何臨時列表。
在Python 3中,字典理解也提供了一個簡潔的解決方案:
b = {a[i]: a[i+1] for i in range(0, len(a), 2)}
雖然zip() 在Python 3 中已經是惰性的,您還可以在Python 3.8及更高版本中使用海象運算子(:=)進行單行解決方案:
b = dict(zip(i := iter(a), i))
最終,最佳選擇取決於特定要求和您正在使用的 Python 版本。這些方法提供了一個乾淨且有效率的解決方案,用於將交替鍵值對列表轉換為 Python 中的字典。
以上是如何在 Python 中有效率地將交替鍵值列表轉換為字典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!