使用字典字面量建立字典的 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})

結論

在本文中,我們簡要討論瞭如何使用字面量建立字典以及字典的型別。

更新於: 2023年4月24日

867 次檢視

啟動你的 職業生涯

透過完成課程獲得認證

開始
廣告