Python 數(shù)據(jù)類型詳細(xì)篇:字典
前面的幾個(gè)小節(jié)我們分別學(xué)習(xí)了字符串、列表、和元組等等幾種 Python 中的基礎(chǔ)數(shù)據(jù)類型,這節(jié)課我們來學(xué)習(xí) Python 中另一個(gè)比較重要的數(shù)據(jù)類型–字典,字典和其他我們已經(jīng)學(xué)習(xí)過的數(shù)據(jù)類型都有些不一樣,具體不一樣在哪里我們一起來看一下:
1. 字典簡(jiǎn)介
字典由鍵和對(duì)應(yīng)值成對(duì)組成,字典中所有的鍵值對(duì)放在 {} 中間,每一對(duì)鍵值之間用逗號(hào)分開,例如:
-
{‘a(chǎn)’:‘A’, ‘b’: ‘B’, ‘c’:‘C’}
- 字典中包含 3 個(gè)鍵值對(duì)
- 鍵 ‘a(chǎn)’ 的值是 ‘A’
- 鍵 ‘b’ 的值是 ‘B’
- 鍵 ‘c’ 的值是 ‘C’
-
{1:100, 2: 200, 3:300}
- 字典中包含 3 個(gè)鍵值對(duì)
- 鍵 1 的值是 100
- 鍵 2 的值是 200
- 鍵 3 的值是 300
字典通常用于描述對(duì)象的各種屬性,例如一本書,有書名、作者名、出版社等各種屬性,可以使用字典描述如下:
>>> book = {'title': 'Python 入門基礎(chǔ)', 'author': '張三', 'press': '機(jī)械工業(yè)出版社'}
>>> book['title']
'Python 入門基礎(chǔ)'
>>> book['author']
'張三'
>>> book['press']
'機(jī)械工業(yè)出版社'
- 在第 1 行,創(chuàng)建了一個(gè)字典用于描述一本書;
- 在第 2 行,使用字符串 ‘title’ 作為鍵(索引)訪問字典中對(duì)應(yīng)的值;
- 在第 4 行,使用字符串 ‘a(chǎn)uthor’ 作為鍵(索引)訪問字典中對(duì)應(yīng)的值;
- 在第 6 行,使用字符串 ‘press’ 作為鍵(索引)訪問字典中對(duì)應(yīng)的值。
2. 常見操作
本節(jié)介紹對(duì)字典的最常見的幾種操作,包括:
2.1 讀取字典
>>> x = {'a':'A', 'b':'B'}
>>> x['a']
'A'
>>> x['b']
'B'
- 在第 1 行,創(chuàng)建一個(gè)具有 2 個(gè)鍵值對(duì)的字典;
- 在第 2 行,讀取鍵 ‘a(chǎn)’ 對(duì)應(yīng)的值;
- 在第 3 行,結(jié)果顯示為 ‘A’;
- 在第 4 行,讀取鍵 ‘b’ 對(duì)應(yīng)的值;
- 在第 5 行,結(jié)果顯示為 ‘B’。
2.2 修改字典
>>> x = {'a':'A', 'b':'B'}
>>> x['a'] = 'AA'
>>> x['b'] = 'BB'
>>> x
{'a':'AA', 'b':'BB'}
- 在第 1 行,創(chuàng)建一個(gè)具有 2 個(gè)鍵值對(duì)的字典;
- 在第 2 行,修改鍵 ‘a(chǎn)’ 對(duì)應(yīng)的值為 ‘AA’;
- 在第 3 行,修改鍵 ‘b’ 對(duì)應(yīng)的值為 ‘BB’;
- 在第 4 行,顯示修改后的字典。
2.3 在字典中增加鍵值對(duì)
>>> x = {'a':'A', 'b':'B'}
>>> x['c'] = 'C'
>>> x
{'a':'A', 'b':'B', 'c':'C'}
- 在第 1 行,創(chuàng)建一個(gè)具有 2 個(gè)鍵值對(duì)的字典;
- 在第 2 行,在字典中增加一個(gè)鍵值對(duì):鍵為 ‘c’,值為 ‘C’;
- 在第 3 行,顯示新增后的字典;
- 在第 4 行,新增后的自動(dòng)包含 3 個(gè)鍵值對(duì)。
2.4 在字典中刪除鍵值對(duì)
>>> x = {'a':'A', 'b':'B', 'c': 'C'}
>>> del x['b']
>>> x
{'a':'A', 'c':'C'}
- 在第 1 行,創(chuàng)建一個(gè)具有 3 個(gè)鍵值對(duì)的字典;
- 在第 2 行,使用 del 語句從字典 x 中刪除鍵 ‘b’ 對(duì)應(yīng)的鍵值對(duì);
- 在第 3 行,顯示刪除后的字典;
- 在第 4 行,刪除一個(gè)鍵值對(duì)后,字典僅包含 2 個(gè)鍵值對(duì)。
2.5 查詢字典
通過關(guān)鍵字 in 檢查字典中是否包含指定元素,示例如下:
>>> x = {'a':'A', 'b':'B'}
>>> 'a' in x
True
>>> 'c' in x
False
- 在第 1 行,創(chuàng)建一個(gè)具有 2 個(gè)鍵值對(duì)的字典;
- 在第 2 行,使用表達(dá)式 key in dictionary,檢測(cè)鍵 ‘a(chǎn)’ 是否在字典 x 中;
- 在第 3 行,結(jié)果為真,表示鍵 ‘a(chǎn)’ 在字典 x 中;
- 在第 3 行,使用表達(dá)式 key in dictionary,檢測(cè)鍵 ‘b’ 是否在字典 x 中;
- 在第 4 行,結(jié)果為假,表示鍵 ‘b’ 不在字典 x 中。
3. 常見函數(shù)
3.1 len (字典) 函數(shù)
使用函數(shù) len 獲取字典中鍵值對(duì)的數(shù)量,示例如下:
>>> x = {'a':'A', 'b':'B'}
>>> len(x)
2
- 在第 1 行,創(chuàng)建一個(gè)具有 2 個(gè)鍵值對(duì)的字典;
- 在第 2 行,使用函數(shù) len (x) 獲取字典 x 中鍵值對(duì)的數(shù)量;
- 在第 3 行,結(jié)果顯示字典 x 包含 2 個(gè)鍵值對(duì)。
4. 常見方法
4.1 clear () 方法
clear () 方法刪除字典中所有的鍵值對(duì),示例如下:
>>> x = {'a':'A', 'b':'B'}
>>> x.clear()
>>> x
{}
- 在第 1 行,創(chuàng)建一個(gè)具有 2 個(gè)鍵值對(duì)的字典;
- 在第 2 行,使用方法 clear () 刪除字典中所有的鍵值對(duì);
- 在第 3 行,顯示刪除后的字典;
- 在第 4 行,結(jié)果顯示字典為空,不包含任何鍵值對(duì)。
4.2 pop (key) 方法
pop (key) 方法刪除字典給定鍵 key 所對(duì)應(yīng)的鍵值對(duì),返回被刪除的值,示例如下:
>>> x = {'a':'A', 'b':'B', 'c': 'C'}
>>> x.pop('b')
'B'
>>> x
{'a':'A', 'c':'C'}
- 在第 1 行,創(chuàng)建一個(gè)具有 3 個(gè)鍵值對(duì)的字典;
- 在第 2 行,使用方法 pop (‘b’) 從字典中刪除鍵 ‘b’ 對(duì)應(yīng)的鍵值對(duì);
- 在第 3 行,方法 pop (‘b’) 返回鍵 ‘b’ 對(duì)應(yīng)的值 ‘B’;
- 在第 4 行,顯示刪除后的字典;
- 在第 5 行,刪除一個(gè)鍵值對(duì)后,字典僅包含 2 個(gè)鍵值對(duì)。
5. 遍歷字典
Python 提供了 for 循環(huán)語句用于遍歷列表、集合、字典等數(shù)據(jù)類型,關(guān)于 for 循環(huán)語句的詳細(xì)用法,請(qǐng)參考詞條 Python 的循環(huán)控制語句。
5.1 使用 for key in dict 遍歷字典
可以使用 for key in dict 遍歷字典中所有的鍵,示例如下:
x = {'a':'A', 'b':'B'}
for key in x:
print(key)
- 在第 1 行,創(chuàng)建一個(gè)包含 2 個(gè)鍵值對(duì)的字典;
- 在第 2 行,遍歷字典中所有的鍵 ‘a(chǎn)’、‘b’。
程序輸出結(jié)果如下:
a
b
5.2 使用 for key in dict.keys () 遍歷字典的鍵
字典提供了 keys () 方法返回字典中所有的鍵,可以使用 for key in dict.keys () 遍歷字典中所有的鍵,示例如下:
x = {'a':'A', 'b':'B'}
for key in x.keys():
print(key)
- 在第 1 行,創(chuàng)建一個(gè)包含 2 個(gè)鍵值對(duì)的字典;
- 在第 2 行,遍歷字典中所有的鍵 ‘a(chǎn)’、‘b’。
程序輸出結(jié)果如下:
a
b
5.3 使用 for values in dict.values () 遍歷字典的值
字典提供了 values () 方法返回字典中所有的值,可以使用 for values in dict.values () 遍歷字典中所有的值,示例如下:
x = {'a':'A', 'b':'B'}
for value in x.values():
print(value)
- 在第 1 行,創(chuàng)建一個(gè)包含 2 個(gè)鍵值對(duì)的字典;
- 在第 2 行,遍歷字典中所有的值 ‘A’、‘B’。
程序輸出結(jié)果如下:
A
B
5.4 使用 for item in dict.items () 遍歷字典的鍵值對(duì)
字典提供了 items () 方法返回字典中所有的鍵值對(duì) item,鍵值對(duì) item 是一個(gè)元組(第 0 項(xiàng)是鍵、第 1 項(xiàng)是值),可以使用 for item in dict.items () 遍歷字典中所有的鍵值對(duì),示例如下:
x = {'a':'A', 'b':'B'}
for item in x.items():
key = item[0]
value = item[1]
print('%s:%s' % (key, value))
- 在第 1 行,創(chuàng)建一個(gè)包含 2 個(gè)鍵值對(duì)的字典;
- 在第 2 行,遍歷字典中所有的鍵值對(duì) item;
- 在第 3 行,鍵值對(duì) item 是一個(gè)元組,item [0] 是鍵;
- 在第 4 行,鍵值對(duì) item 是一個(gè)元組,item [1] 是值;
- 在第 5 行,打印鍵和值。
程序輸出結(jié)果如下:
a:A
b:B
5.5 使用 for key,value in dict.items () 遍歷字典的鍵值對(duì)
可以使用 for key,value in dict.items () 遍歷字典中所有的鍵值對(duì),示例如下:
x = {'a':'A', 'b':'B'}
for key,value in x.items():
print('%s:%s' % (key, value))
- 在第 1 行,創(chuàng)建一個(gè)包含 2 個(gè)鍵值對(duì)的字典;
- 在第 2 行,遍歷字典中所有的鍵值對(duì) item;
- 在第 3 行,鍵值對(duì) item 是一個(gè)元組,item [0] 是鍵;
- 在第 4 行,鍵值對(duì) item 是一個(gè)元組,item [1] 是值;
- 在第 5 行,打印鍵和值。
程序輸出結(jié)果如下:
a:A
b:B