用 Python 將兩個列表轉換為字典
本教程將介紹如何在 Python 中把兩個列表轉換為字典,其中一個列表包含字典的鍵,另一個包含值。
在 Python 中使用 zip()
和 dict()
把兩個列表轉換為字典
Python 有一個內建函式 zip()
,它將可迭代的資料型別聚合成一個元組並返回給呼叫者。函式 dict()
從給定集合中建立一個字典。
key_list = ['name', 'age', 'address']
value_list = ['Johnny', '27', 'New York']
dict_from_list = dict(zip(key_list, value_list))
print(dict_from_list)
在這個解決方案中,只需使用一行和兩個函式就可以將列表轉換為字典。
輸出:
{'name': 'Johnny', 'age': '27', 'address': 'New York'}
在 Python 中使用字典推導法將列表轉換為字典
字典推導是一種縮短 Python 中建立字典的初始化時間的方法。理解是對 for
迴圈的一種替代,後者需要多行和變數。理解式在一行中就完成了初始化的工作。
在這個解決方案中,函式 zip()
仍然會向字典推導提供值。理解將把函式 zip()
的返回值內的每個連續元素的鍵值對作為字典返回。
key_list = ['name', 'age', 'address']
value_list = ['Johnny', '27', 'New York']
dict_from_list = {k: v for k, v in zip(key_list, value_list)}
print(dict_from_list)
另一種將列表轉換為字典的方法是利用列表的索引,使用 range()
函式對兩個列表進行迭代,並使用 comprehension 從列表中建立一個字典。
它假設鍵列表和值列表的長度是相同的。在這個例子中,鍵列表的長度將是範圍的基礎。
key_list = ['name', 'age', 'address']
value_list = ['Johnny', '27', 'New York']
dict_from_list = {key_list[i]: value_list[i] for i in range(len(key_list))}
print(dict_from_list)
這兩種理解方案都會提供與前一個例子相同的輸出。
這兩個解決方案之間唯一的區別是,一個使用 zip()
函式將列表轉換為元組。另一個使用 range()
函式使用當前索引迭代兩個列表,形成一個字典。
輸出:
{'name': 'Johnny', 'age': '27', 'address': 'New York'}
在 Python 中使用 for
迴圈將列表轉換為字典
實現列表到字典轉換的最直接的方法就是迴圈。雖然這種方法效率最低,也最冗長,但它是一個很好的開始,特別是當你是一個初學者,想領悟更多的基本程式設計語法的時候。
在迴圈之前,先初始化一個空字典。之後,繼續進行轉換,這將需要一個巢狀迴圈;外迴圈將迭代鍵列表,而內迴圈將迭代值列表。
key_list = ['name', 'age', 'address']
value_list = ['Johnny', '27', 'New York']
dict_from_list = {}
for key in key_list:
for value in value_list:
dict_from_list[key] = value
value_list.remove(value)
break
print(dict_from_list)
每次形成鍵值對時,都會從列表中刪除值元素,這樣下一個鍵就會被分配下一個值。刪除後,中斷內迴圈,繼續下一個鍵。
另一種使用迴圈的解決方案是使用 range()
來利用索引來獲取鍵和值對,就像在字典推導的例子中所做的那樣。
key_list = ['name', 'age', 'address']
value_list = ['Johnny', '27', 'New York']
dict_from_list = {}
for i in range(len(key_list)):
dict_from_list[key_list[i]] = value_list[i]
print(dict_from_list)
這兩種解決方案都會產生相同的輸出。
{'name': 'Johnny', 'age': '27', 'address': 'New York'}
總而言之,將兩個列表轉換為字典的最有效方法是使用內建函式 zip()
將兩個列表轉換為元組,然後使用 dict()
將元組轉換為字典。
使用字典推導也可以使用 zip()
將列表轉換為元組,或者使用 range()
,利用列表的索引來迭代和初始化字典,將列表轉換為字典。
與樸素的解決方案相比,這兩個解決方案是更好的解決方案,樸素的解決方案使用普通迴圈將列表轉換為字典。
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn相關文章 - Python List
- 在 Python 中將字典轉換為列表
- 從 Python 列表中刪除某元素的所有出現
- 在 Python 中從列表中刪除重複項
- 如何在 Python 中獲取一個列表的平均值
- Python 列表方法 append 和 extend 之間有什麼區別
- 如何在 Python 中將列表轉換為字串