Python 資料型別 - 字典
Jinku Hu
2023年1月30日
我們將在本節學習 Python 中的字典(Dictionary
)資料型別。你將學習如何建立字典以及如何新增和刪除字典中的元素。
字典是一種 Python 內建資料型別,其資料/值是鍵值對。字典包含無序元素。如果你知道鍵,則可以檢索字典的資料或值。
建立字典
可以使用大括號來建立字典 {}
,每個元素都是包含鍵和值的對。
Python 字典鍵必須是不可變的資料型別,值可以是任何型別。
來看下面的字典的例子,
>>> x = {1:'blue', 'key':'pink'}
>>> print(type(x))
<class 'dict'>
>>> print('x[1] = ', x[1]) #using key to retrive value
x[1] = blue
>>> print("x['key'] =", x['key']) #using key to retrive value
x['key'] = pink
也可以使用該 dict()
方法初始化字典。
>>> dict({1: 'Blue', 2: 'Pink'})
{1: 'Blue', 2: 'Pink'}
用 get()
方法來訪問字典元素
你可以使用鍵訪問字典的值。鍵可以與索引訪問運算子 []
一起使用,如上所述,也可以與 get()
方法一起使用。
如果在使用 get()
方法時未找到鍵,將會返回 None
而不是報錯。
>>> d = dict({1: 'Blue', 2: 'Pink'})
>>> print(d[1])
Blue
>>> print(d.get(1))
Blue
>>> print(d[3])
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
d[3]
KeyError: 3
>>> print(d.get(3))
None
更新字典元素
字典是可變的,因此我們可以更新字典,新增或刪除字典中的元素。可以使用賦值運算子更新字典的元素。
使用字典中不存在的鍵更新元素時,將建立新的鍵值對,否則將更新鍵對應的值。
>>> d = dict({1: 'Blue', 2: 'Pink'})
>>> d[1] = 'Yellow'
>>> print(d)
{1: 'Yellow', 2: 'Pink'}
>>> d[3] = 'Black'
>>> print(d)
{1: 'Yellow', 2: 'Pink', 3: 'Black'}
從字典中刪除元素
以下是從字典中刪除元素的一些方法:
pop()
方法:刪除並返回相應給定鍵的值。popitem()
方法:它將從字典中刪除並返回任意一個(key, value)
。clear()
方法:它將刪除字典中的所有元素,但不刪除字典。del
keyword:它可以刪除特定方法或整個字典。
下面舉些例子,
>>> d = dict({1: 'Blue', 2: 'Pink', 3:'Yellow', 4:'Red'})
>>> print(d.pop(2))
Pink
>>> print(d)
{1: 'Blue', 3: 'Yellow', 4: 'Red'}
>>> print(d.popitem())
(4, 'Red')
>>> print(d)
{1: 'Blue', 3: 'Yellow'}
>>> del d[3]
>>> print(d)
{1: 'Blue'}
>>> d.clear()
>>> print(d)
{}
>>> del d
>>> print(d)
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
print(d)
NameError: name 'd' is not defined
適用於 Python 字典的方法
下面列出了 Python 字典中的一些方法,
方法 | 描述 |
---|---|
clear() |
清除字典中的所有專案 |
copy() |
複製字典 |
fromkeys(seq[,v]) |
返回帶有 seq 元素的字典作為鍵,值將等於 v |
get(key[,d]) |
獲取鍵的值,如果沒有鍵,將返回 d |
items() |
將字典中的項返回為(鍵,值) |
keys() |
返回字典的鍵 |
pop(key[,d]) |
刪除對應的專案 key 。如果鍵不存在,d 則返回相應的值。如果同時 d 和 key 不存在的錯誤將得到提升 |
popitem() |
它將返回並從字典中刪除鍵和值 |
setdefault(key[,d]) |
返回鍵的值。如果未找到鍵,將建立一個帶有值的新鍵 d ,d 並將返回該鍵 |
update([other]) |
使用鍵和值更新字典 other |
values() |
返回字典的值 |
其他字典操作
字典會員檢查
關鍵字 in
用來檢查某個元素是否是字典中的成員。
Note
字典的鍵用於成員資格檢查,而不是字典的值。
>>> d = dict({1: 'Blue', 2: 'Pink', 3:'Yellow', 4:'Red'})
>>> print(2 in d)
True
>>> print(5 in d)
False
字典遍歷
你可以使用 for
迴圈遍歷字典,
>>> d = dict({1: 'Blue', 2: 'Pink', 3:'Yellow', 4:'Red'})
>>> for i in d:
print(i)
1
2
3
4
帶字典的內建函式
以下是一些可與字典一起執行不同任務的內建函式:
功能 | 描述 |
---|---|
all() |
True 當字典的所有鍵都是時返回 True 。True 當字典為空時它也會返回 |
any() |
True 當字典中的任何一個鍵出現時返回 True 。它 False 在字典為空時返回 |
cmp() |
比較兩個字典 |
len() |
返回字典中的專案數或字典的長度 |
sorted() |
返回字典鍵的排序列表 |
下面舉些例子,
>>> d = dict({1: 'Blue', 2: 'Pink', 3:'Yellow', 4:'Red'})
>>> print(len(d))
4
>>> print(sorted(d))
[1, 2, 3, 4]