一、字典是什麼?¶
在Python中,字典(Dictionary)是一種鍵值對形式的數據結構,它就像我們現實生活中的“通訊錄”——通過一個唯一的鍵(Key) 就能快速找到對應的值(Value)。比如,我們可以用“姓名”作爲鍵,存儲“年齡”“電話”等信息作爲值,這樣比用列表(通過索引訪問)更直觀。
舉個例子:如果要記錄一個學生的信息,用列表可能需要 [["name", "小明"], ["age", 18]],而用字典則是 {"name": "小明", "age": 18},後者直接通過鍵名就能訪問,比如 student["name"] 就能得到“小明”。
二、創建字典:最簡單的方式是用大括號¶
字典由鍵(Key) 和值(Value) 組成,鍵和值用冒號 : 分隔,鍵值對之間用逗號 , 分隔,整體放在大括號 {} 中。
示例:
# 用大括號創建字典
student = {
"name": "小明",
"age": 18,
"score": 95,
"hobbies": ["籃球", "編程"] # 值可以是任意類型,包括列表
}
注意:
- 鍵必須是不可變類型(如字符串、數字、元組),不能用列表、字典等可變類型作爲鍵(否則會報錯)。
- 值可以是任意類型(數字、字符串、列表、字典等)。
三、訪問字典中的元素:通過鍵名“查值”¶
要獲取字典中的值,直接用鍵名加中括號 [] 即可。如果鍵不存在,會報錯 KeyError,因此推薦用 get() 方法(更安全,不存在時返回 None 或自定義默認值)。
示例:
student = {"name": "小明", "age": 18, "score": 95}
# 1. 直接用鍵訪問(鍵不存在會報錯)
print(student["name"]) # 輸出:小明
# print(student["gender"]) # 報錯!KeyError: 'gender'
# 2. 用get()方法(更安全,不存在時返回None或指定默認值)
print(student.get("age")) # 輸出:18
print(student.get("gender", "未知")) # 輸出:未知(不存在時返回默認值“未知”)
四、修改、添加與刪除元素¶
字典是可變的,可以隨時修改或添加鍵值對,也能刪除元素。
- 修改/添加:如果鍵已存在,賦值會修改值;如果鍵不存在,賦值會新增鍵值對。
student = {"name": "小明", "age": 18}
# 修改已有鍵的值
student["age"] = 19 # 把年齡改爲19
print(student) # 輸出:{'name': '小明', 'age': 19}
# 添加新鍵值對
student["score"] = 95 # 新增分數
print(student) # 輸出:{'name': '小明', 'age': 19, 'score': 95}
- 刪除元素:用
del語句或pop()方法。
student = {"name": "小明", "age": 18, "score": 95}
# 1. del語句(直接刪除鍵值對,無返回值)
del student["age"] # 刪除年齡
print(student) # 輸出:{'name': '小明', 'score': 95}
# 2. pop()方法(返回被刪除的值,可指定默認值)
age = student.pop("score") # 刪除分數並返回95
print(student) # 輸出:{'name': '小明'}
print(age) # 輸出:95
五、遍歷字典:三種常用技巧¶
遍歷字典時,我們需要關注鍵(Key)、值(Value) 或鍵值對(Key-Value)。Python提供了三種遍歷方式:
- 遍歷所有鍵(Key):用
for key in 字典或字典.keys()。
student = {"name": "小明", "age": 18, "score": 95}
for key in student:
print(key) # 輸出:name, age, score(Python 3.7+ 按插入順序)
- 遍歷所有值(Value):用
for value in 字典.values()。
for value in student.values():
print(value) # 輸出:小明, 18, 95
- 遍歷所有鍵值對(Key-Value):用
for key, value in 字典.items()。
for key, value in student.items():
print(f"{key}: {value}") # 輸出:name: 小明, age: 18, score: 95
六、字典的常用小技巧¶
- 判斷鍵是否存在:用
in操作符。
student = {"name": "小明", "age": 18}
print("name" in student) # 輸出:True(鍵存在)
print("gender" in student) # 輸出:False(鍵不存在)
- 獲取字典長度:用
len()。
print(len(student)) # 輸出:2(兩個鍵值對)
- 合併字典:用
update()方法,合併後會覆蓋重複的鍵。
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
dict1.update(dict2) # 合併dict2到dict1
print(dict1) # 輸出:{'a': 1, 'b': 3, 'c': 4}(b的值被覆蓋)
七、總結¶
字典是Python中靈活且高效的數據結構,核心是鍵值對,通過鍵快速訪問值,適合存儲“關聯數據”(如用戶信息、配置參數)。掌握以下關鍵點:
- 用 {} 或 dict() 創建字典,鍵必須是不可變類型(字符串、數字、元組)。
- 用 字典[key] 或 字典.get(key) 訪問值,get() 更安全。
- 通過賦值修改/添加元素,用 del 或 pop() 刪除元素。
- 遍歷用 for key in 字典、for value in 字典.values() 或 for key, value in 字典.items()。
多動手嘗試,就能熟練運用字典解決實際問題啦!