最後更新日期:2019 年 02 月 21 日
大多數的 Python 程式人員,會把字典(dictionary) 簡稱為 dict。
字典基本上是一個「兩欄多列的表格」。
Table of Contents
設值
程式碼中的字典會被包含在一對大括號中,大括號中的「鍵/值對」以逗號分開;每個「鍵」與其相對應的「值」,以冒號分開。
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 這個內建函式並不會變原始資料的順序,它只會回傳資料排序過的副本。
Comments