Python中的字典是以鍵值對的形式儲存的資料的集合。我們可以分配不同的資料類型作為鍵的值。它幫助編碼人員儲存資料和類別流派並相應地建立資料庫。
另一方面,列表也儲存數據,但這裡的元素不與多個值關聯。字典和列表都已建立索引。在清單中,我們以序列的形式儲存數據,並且可以遍歷和操作這些序列。
在本文中,我們將合併這兩種格式並建立一個清單字典。在深入探討主題之前,讓我們先快速瀏覽一下本文的概述。
對於字典創建,我們使用「{}」大括號。讓我們看看文法 -
dict1 = {"Car": "AUDI"}
這裡「Car」是鍵,「AUDI」是鍵值。
對於清單創建,我們使用「[]」方括號。讓我們看看文法 -
lis1 = ["Name", "age", "gender", "qualification"]
這裡,「姓名」、「年齡」、「性別」、「資格」是清單「lis1」的元素。
當我們嘗試組合這些格式來產生清單字典時,這意味著我們必須將列表視為鍵值對。但問題是列表充當鍵還是值。分配密鑰的規則是它應該是“不可變的”或不可更改的。
因此,列表不能充當字典的鍵。因此,在處理清單字典時,我們會將清單視為不可變鍵的「值」。
在此方法中,我們直接命名鍵並為它們指派一個值列表。讓我們看看它的實作 -
dict1 = {} dict1["Name"] = ["RAM", "RAVI", "TARUN", "MOHAN"] #assigning 1st key dict1["Age"] = [22, 23, 18, 27] #assigning 2nd key print(dict1)
{'Name': ['RAM', 'RAVI', 'TARUN', 'MOHAN'], 'Age': [22, 23, 18, 27]}
在這裡,我們建立了一個空字典,然後在外部分配鍵值。 「Name」是第一個鍵,「Age」是第二個鍵。
如果我們顛倒順序,即我們將 list 指定為該字典的鍵,那麼讓我們看看會發生什麼 -
dict1 = {["Name", "Age", "Gender"]: "RAVI"}
dict1 = {["Name", "Age", "Gender"]: "RAVI"} TypeError: unhashable type: 'list'
會引發錯誤,因為清單本質上不是不可變的,因此不能用作鍵。
dict() 和 defaultdict 方法都可以用來產生列表字典。讓我們看看實作 -
from collections import defaultdict lis1 = [("Name", "Arjun"), ("Age", 22), ("Age", 23), ("Age", 28), ("Name", "RAVI"),("Name", "ADITYA")] dict1 = defaultdict(list) for keys, values in lis1: dict1[keys].append(values) print(dict1)
defaultdict(<class 'list'>, {'Name': ['Arjun', 'RAVI', 'ADITYA'], 'Age': [22, 23, 28]})
此方法的有趣之處在於它允許清單資訊以括號每個值的形式傳遞。這意味著對於給定的括號,我們只能傳遞一個鍵值。
如果我們想增加鍵值,我們需要一個具有正確鍵名稱的新括號。這增加了程式的可讀性。
在這裡,我們導入了 collections 模組以使用「defaultdict」方法。我們以正確的資訊順序傳遞了列表。我們使用 defaultdict 方法來執行此操作,因為它效率更高,並且會在丟失鍵的情況下建立預設值。我們遍歷列表並將每個鍵和值對附加到字典中。
setdeafault() 方法用於傳回與給定鍵關聯的字典值。此方法的獨特之處在於,如果指定的鍵不存在,則它會透過插入來建立該特定鍵。讓我們看看實作 -
dict1 = {} lis1 = [23, 24, 28, 12, 22] for key in lis1: for values in range(int(key), int(key)+4): dict1.setdefault(values, []).append(key) print(dict1)
{23: [23, 22], 24: [23, 24, 22], 25: [23, 24, 22], 26: [23, 24], 27: [24], 28: [28], 29: [28], 30: [28], 31: [28], 12: [12], 13: [12], 14: [12], 15: [12], 22: [22]}
使用這個方法,我們可以為每個鍵建立一筆記錄。這種方法的問題在於資料類型的選擇,只有數字條目才能被視為範圍值。
這裡,
我們建立了一個空字典,然後傳遞了一個列表,其中儲存了資訊。
我們迭代列表並分離鍵和值。我們建立每個數字條目作為鍵,然後在使用另一個「for 迴圈」後,我們設定了值初始化的範圍。
我們將值及其鍵附加到空字典中。
最後,我們印了字典。
在本文中,我們了解了字典創建和處理的基本概念。我們討論了創建清單字典的各種方法,並了解每種方法的複雜性和局限性。
以上是在Python中建立列表字典的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!