Python 資料型別 - 字典

Jinku Hu 2023年1月30日 2018年2月12日
  1. 建立字典
  2. get() 方法來訪問字典元素
  3. 更新字典元素
  4. 從字典中刪除元素
  5. 適用於 Python 字典的方法
  6. 其他字典操作
  7. 字典遍歷
  8. 帶字典的內建函式
Python 資料型別 - 字典

我們將在本節學習 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'}

從字典中刪除元素

以下是從字典中刪除元素的一些方法:

  1. pop() 方法:刪除並返回相應給定鍵的值。
  2. popitem() 方法:它將從字典中刪除並返回任意一個 (key, value)
  3. clear() 方法:它將刪除字典中的所有元素,但不刪除字典。
  4. 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 則返回相應的值。如果同時 dkey 不存在的錯誤將得到提升
popitem() 它將返回並從字典中刪除鍵和值
setdefault(key[,d]) 返回鍵的值。如果未找到鍵,將建立一個帶有值的新鍵 dd 並將返回該鍵
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 當字典的所有鍵都是時返回 TrueTrue 當字典為空時它也會返回
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]
Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn