最後更新日期:2019 年 02 月 21 日

大多數的 Python 程式人員,會把字典(dictionary) 簡稱為 dict。

字典基本上是一個「兩欄多列的表格」。

設值

程式碼中的字典會被包含在一對大括號中,大括號中的「鍵/值對」以逗號分開;每個「鍵」與其相對應的「值」,以冒號分開。

contacts = { 'Jonh': '0911222333', 'Mary' : '0955666777'}

# 另一種設值方式
contacts = {}  # 這行一定要有,字典在使用前必須被初始化
contacts['John'] = '0911222333'
contacts['Mary'] = '0955666777'

取值

字典取值的方式是使用「方括號」配合「鍵(key)」來取值;取用字典的資料前,資料也需要被初始化。

print(contacts['Kevin'])  # 未初始資料即取值,這會出現 KeyError

# 正確的方式
contacts = {'kevin': '0988999999'}
print(contacts['kevin'])  # 這會印出 0988999999

如何避免 KeyError

# 方法一:使用 not in 來檢查
if 'kevin' not in contacts:
    contacts['kevin'] = 0

# 方法二:使用 setdefault 內建函數來指定初始值
contacts.setdefault('kevin', '0800092000')
# 如果 kevin 這個鍵已經存在,setdefault 將不會有任何效果

字典的迭代

for k in contacts:
    print(k, contacts[k])
# 同時取得鍵及值
for k, v in contacts.items():
    print(k, v)

鍵的排序

字典的鍵,基本上是「無序」的, 資料列的插入順序與它們的儲存方式無關,但是我們可以使用 sorted 函數來對鍵排序

for k in sorted(contacts):
    print(k, contacts[k])

# 排序後,同時傳回鍵/值
for k, v in sorted(contacts.items()):
    print(k, v)

sorted 這個內建函式並不會變原始資料的順序,它只會回傳資料排序過的副本。

表格 -- 由字典構成的字典

Last modified: 2019-02-21

Author

Comments

Write a Reply or Comment

Your email address will not be published.