首頁 >後端開發 >Python教學 >在Python中建立列表字典的方法

在Python中建立列表字典的方法

WBOY
WBOY轉載
2023-08-26 13:01:132869瀏覽

在Python中建立列表字典的方法

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 方法

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

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除