dict 字典物件基本介紹
在 Python 中 dict 和 list很常被使用來儲存資料的容器物件。dict 字典是由 key:value 所組成的物件容器,根據 Python Wiki 上的資料製作出 Python 相關資訊的字典物件:
language_info_dict = {
'name': 'Python',
'released_at': 1991,
'designed_by': 'Guido van Rossum',
'filename_extensions': ['.py', '.pyi']
}
dict 字典的 key 健值必須是不可變物件(例如:字串、整數、tuple 等),不能使用 list 等可變物件當作 dict 的 key。
隨堂練習:建立 dict 物件
使用 {} 建立 'name': 'Jack', 'age': 20, 'gender': 'Male' 的 dict 物件。
profile = {
'name' : 'Jack',
'age' : '27',
'city' : 'New York',
'gender' : 'male'
}
dict 物件基本操作
dict 是一種透過 key/value 儲存的無順序性結構。
建立dict 並透過key取值:
profile = {
'name' : 'Jack',
'age' : '27',
'city' : 'New York',
'gender' : 'male'
}
print(profile['name' ])
#取出Jack
在dict中取key值,並且當該key值不存在於dict中,回傳默認值或None,而非error,則可以使用.get():
profile = {
'age' : '27',
'city' : 'New York',
'gender' : 'male'
}
print(profile.get('name'))
#得到None,因為dict中不存在name這個key值。(若存在則得到Jack)。
隨堂練習:建立 dict 並透過 key 取值
使用 [] 和 get() 方式取得 Java 的使用人數。
languages = {'Python': 12, 'Java': 3, 'C': 2}
1.get:
print(languages.get('Java'))
2.[]:
print(languages['Java'])
新增修改 key/value 值
中括號值可以新增修改 dict 的 key/value:
languages = {'Python': 12, 'Java': 3, 'C': 2}
languages['R']=12
print(languages)
#{'Python': 12, 'Java': 3, 'C': 2, 'R': 12}
隨堂練習:新增修改 key/value 值
新增一個 key 是 C++ value 為 6,並將 Python 的 value 改為 7。
languages = {'Python': 12, 'Java': 3, 'C': 2}
languages = {'Python': 12, 'Java': 3, 'C': 2}
languages['c++']=6
languages['Python']=7
print(languages)
#{'Python': 7, 'Java': 3, 'C': 2, 'c++': 6}
刪除 key/value 值
pop() 移除指定鍵值並回傳移除值:
languages = {'Python': 12, 'Java': 3, 'C': 2}
建立一個乘載被移除值的變數
removed_value = language.pop('Python')
print(removed_value)
#得 12
print(languages)
#只會獲得{'Java': 3, 'C': 2}
練習
移除 dict 中的 Java key 後印出結果。
languages = {'Python': 12, 'Java': 3, 'C': 2}
1.新增C++:
languages['c++']=6
print(languages)
#得到{'Python': 12, 'Java': 3, 'C': 2, 'c++': 6}
2.移除Java:
removed_value = languages.pop('Java')
print(removed_value)
#得3 (java這個key值,回傳value值)
3.印出先新增後移除的整個Dict:
print(languages)
#得到{'Python': 12, 'C': 2, 'c++': 6}
取得 dict 中所有 key/value
使用 keys() 取得 dict 所有 key
values() 取得 dict 所有 value
languages = {'Python': 12, 'Java': 3, 'C': 2}
print(languages.keys())
#得到 dict_keys(['Python', 'Java', 'C'])
print(languages.values())
#得到 dict_values([12, 3, 2])
迭代 dict 中元素
```
languages = {'Python': 12, 'Java': 3, 'C': 2}
for key, value in languages.items():
print(key, value)
#隨堂練習:迭代 dict 中元素
使用 dict.items() 迭代印出 dict 的 key, value 值。
languages = {'Python': 12, 'Java': 3, 'C': 2}
for key, value in languages.items():
print(key, value)
```