# python 字典
###### tags: `python` `字典` `資料結構` `Rduan`
*作者:Rduan*
## 甚麼是字典
> 字典就像是一個小型的資料庫,採用(鍵-值)對應的方式來儲存資料,在Python中,字典是一種無序的數據結構,字典由一對大括號括起來,其中每個鍵值對之間用逗號分隔,鍵和值之間用冒號分隔。與[[陣列]]不同之處在於,陣列是一種有順序的結構,但是每一筆資料並沒有一個鍵(索引標籤)來進行搜尋。
---
## 為什麼要學習字典
學習Python字典非常重要,因為字典是Python中非常強大且廣泛使用的數據結構之一,可以用來儲存和操作一組相關聯的數據。
以下是學習Python字典的一些原因:
1. 字典提供了一個快速和高效的方法來查找和訪問數據,尤其是對於大型數據集的查找和操作。
2. 字典可以用來表示現實世界中的許多實體,例如購物車、學生信息、聯繫人等。
3. 字典允許存儲鍵值對,其中每個鍵都是唯一的,這使得它們非常適合用於查找和映射操作。
4. Python中的字典支持各種內置函數和方法,可以用來添加、刪除、更新、合併和排序字典中的元素,以及遍歷字典中的所有鍵值對。
5. Python中的字典還支持嵌套,可以使用字典嵌套其他字典或列表,這樣就可以構建更複雜和更靈活的數據結構。
---
## Overview
- 建立Dictionary的方法
- 存取Dictionary元素的方法
- 新增Dictionary元素的方法
- 修改Dictionary元素的方法
- 刪除Dictionary元素的方法
- 尋找Dictionary元素的方法
## 新增字典的方法
```python
dict_1 = {'apple':123,'orange':456,'banana':789}
dict_2 = dict(apple=123,orange=456) #資料型態為dict
```
## 如何讀取字典的元素
```python
print(dict_1) #列印出整個字典
print(dict_1["apple"]) #印出apple後面的值 Ex=123
#透過迴圈的方式來讀取字典
for i in dict_1:
print(i) # i 被指定成鍵值
print(dict_1[i]) # 用次方法可以訪問每一個元素
```
## 新增元素於字典的方法
```python
dict_1['papaya']=789 # 新增papaya=789於字典中
print(dict_1) #會有原先的字典加上papaya=789
#使用update()的方法
dict_1.update(dict_1(guava=100))
```
## 刪除字典特定元素
```python
dict_1.pop('papya')
print(dict_1)
```
## 尋找字典指定值
```python
# 使用 dict.get() 回傳指定 key 的值,如果 key 不存在,回傳指定的值
print(my_dict.get('pear', 0)) # 0
# 使用 dict.items() 回傳包含所有 (key, value) 項目的列表
print(my_dict.items()) # [('apple', 2), ('banana', 3), ('orange', 4)]
# 使用 dict.keys() 回傳包含所有 key 的列表
print(my_dict.keys()) # ['apple', 'banana', 'orange']
# 使用 dict.values() 回傳包含所有 value 的列表
print(my_dict.values()) # [2, 3, 4]
```
## 常用函數集合
```python
# 創建一個字典
my_dict = {'apple': 2, 'banana': 3, 'orange': 4}
# 使用 dict.get() 返回指定 key 的值,如果 key 不存在,返回 None
print(my_dict.get('apple')) # 2
print(my_dict.get('pear')) # None
# 使用 dict.get() 返回指定 key 的值,如果 key 不存在,返回指定的值
print(my_dict.get('pear', 0)) # 0
# 使用 dict.items() 返回包含所有 (key, value) 項目的列表
print(my_dict.items()) # [('apple', 2), ('banana', 3), ('orange', 4)]
# 使用 dict.keys() 返回包含所有 key 的列表
print(my_dict.keys()) # ['apple', 'banana', 'orange']
# 使用 dict.values() 返回包含所有 value 的列表
print(my_dict.values()) # [2, 3, 4]
# 使用 dict.pop() 刪除並返回指定 key 的值
print(my_dict.pop('banana')) # 3
print(my_dict) # {'apple': 2, 'orange': 4}
# 使用 dict.pop() 刪除一個不存在的 key 並返回指定的值
print(my_dict.pop('banana', 0))# 0
# 使用 dict.popitem() 隨機返回並刪除一個 (key, value) 項目
print(my_dict.popitem()) # ('orange', 4)
# 使用 dict.update() 添加另一個字典的 key-value 項目
other_dict = {'pear': 5, 'grape': 6}
my_dict.update(other_dict)
print(my_dict) # {'apple': 2, 'pear': 5, 'grape': 6}
```