Python Data Type Dictionary

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