使用字典字面量建立字典的 Python 程式
字典用於像對映一樣以鍵:值對的形式儲存資料值(與其他資料型別不同,它僅將單個值作為元素)。字典中提供了鍵:值以使其更有效。
鍵是唯一的。字典鍵必須唯一。因此,字典中不允許重複值。字典項是有序的、可更改的、不可變的。可更改的意思是,在建立字典後,我們可以新增或刪除項。
在 Python 中,字典定義為資料型別為“dict”的物件。字典項中的值可以是任何資料型別,例如字串、整數、布林值和列表。為了確定字典包含多少個項,我們使用 len() 函式。
字典鍵區分大小寫,即,相同鍵名但大小寫不同的鍵在 Python 字典中被視為不同的鍵。
如何使用字典字面量建立字典?
我們可以使用花括號 {} 建立字典。透過將元素放置在花括號 {} 內,使用冒號 (:) 分隔鍵值,並在每對之間使用逗號分隔。字典可以包含整數、字串、布林值和列表。這些型別的字典稱為混合字典。
這裡,這些花括號 {}、冒號 (:)、逗號 (,) 是字面量。
Python 提供了內建函式 dict() 方法用於建立字典。空花括號 {} 用於建立空字典。
示例
這裡,在這個程式中,我們使用花括號 {} 建立了字典,並使用冒號 (:) 分隔了鍵值對。字典“a”包含整數和字串。字典“b”僅包含整數,同樣“c”包含字串和列表。字典“d”是空字典。
a= {1:'rose',2:'lily',3:'jasmine'} b= {1:5,3:7,8:6,9:4} c= {'spider':'man','captain':'america', 'iron': ["tony","starks"]} d= {} print(a) print(b) print(c) print(d)
輸出
{1: 'rose', 2: 'lily', 3: 'jasmine'} {1: 5, 3: 7, 8: 6, 9: 4} {'spider': 'man', 'captain': 'america', 'iron': ['tony', 'starks']} {}
字典型別
Python 中有四種類型的字典:
有序字典
預設字典
鏈式對映
計數器
有序字典
在這種型別的字典中,鍵是有序的,它保持元素的插入順序。 dict() 和 ordereddict() 之間的唯一區別在於,ordereddict() 保留鍵插入的順序。而 dict 不會跟蹤插入順序。
示例
這裡,在這個程式中,我們匯入了 ordereddict() 來建立有序字典。我們觀察到輸出的順序與插入順序相同。
from collections import OrderedDict a= OrderedDict() a[1]= "apple" a[2]= "mango" a[3]= "cherry" for key,value in a.items(): print(key,value)
輸出
1 apple 2 mango 3 cherry
預設字典
預設字典是 collection 模組中存在的類似字典的容器。在這些型別的字典中,為不存在的鍵提供鍵的預設值。例如:
示例
這裡,在這個程式中,我們匯入了 defaultdict() 來建立預設字典。我們觀察到輸出對於不存在的鍵顯示為“不存在”。
from collections import defaultdict def def_value(): return "not existing" a=defaultdict(def_value) a[1]= "hello" print(a[2])
輸出
Not existing
鏈式對映
它是一個容器,將多個字典組合成一個單元。它存在於 collections 庫中。Maps() 返回相應的鍵以及相應字典的值。例如:
示例
這裡,在這個程式中,我們匯入了 ChainMap() 來建立鏈式對映。chainmap() 添加了兩個列表並將其轉換為一個。
from collections import ChainMap a= {1:'apple',2:'cherry'} b= {3:'feed', 4:'dogs'} c= ChainMap(a,b) print(c)
輸出
ChainMap({1: 'apple', 2: 'cherry'}, {3: 'feed', 4: 'dogs'})
Counter()
它是一個集合,其中元素儲存為字典鍵,它們的計數儲存為字典值。Counter() 用於計算句子中單詞的頻率。
示例
這裡,在這個程式中,我們匯入了 Counter() 來建立 Counter 字典。Counter() 拆分句子並將其轉換為字典。
from collections import Counter l= 'an apple a day keeps doctor away' a= Counter(l.split()) print("counter dict:") print(a)
輸出
counter dict: Counter({'an': 1, 'apple': 1, 'a': 1, 'day': 1, 'keeps': 1, 'doctor': 1, 'away': 1})
結論
在本文中,我們簡要討論瞭如何使用字面量建立字典以及字典的型別。