字典鍵值對操作:Python字典的增刪改查技巧

字典是Python中一種非常實用的數據結構,用於存儲鍵值對(Key-Value Pair)。與列表不同,字典的鍵必須是不可變類型(如字符串、數字)且唯一,值可以是任意類型。通過“增、刪、改、查”操作,我們可以靈活地管理字典中的數據。

一、字典的基本定義

字典用 {} 創建,格式爲 {鍵1: 值1, 鍵2: 值2, ...}。例如:

student = {
    'name': '小明',
    'age': 18,
    'gender': '男'
}
  • 鍵(Key):唯一且不可變(如字符串、數字),用於定位值。
  • 值(Value):可以是任意類型(數字、字符串、列表、字典等)。

二、字典的“增”:添加鍵值對

給字典新增鍵值對時,直接通過賦值操作實現(若鍵不存在則新增,若鍵已存在則修改)。

1. 直接賦值(新增/修改)

student = {'name': '小明', 'age': 18}

# 新增鍵值對(鍵不存在時)
student['gender'] = '男'
print(student)  # 輸出:{'name': '小明', 'age': 18, 'gender': '男'}

# 修改已有鍵的值(鍵存在時)
student['age'] = 19
print(student)  # 輸出:{'name': '小明', 'age': 19, 'gender': '男'}

三、字典的“刪”:刪除鍵值對

刪除操作用於移除字典中的某個鍵值對,常用方法有 delpop()popitem()clear()

1. del 語句:刪除指定鍵

student = {'name': '小明', 'age': 18, 'gender': '男'}

del student['age']  # 刪除鍵 'age'
print(student)  # 輸出:{'name': '小明', 'gender': '男'}
  • 注意:若鍵不存在,會報錯 KeyError

2. pop() 方法:刪除並返回值

pop(key, default):若鍵存在,刪除並返回該鍵的值;若鍵不存在,返回 default(默認 None)。

student = {'name': '小明', 'age': 18}

# 刪除 'name' 並返回其值
name = student.pop('name')
print(name)  # 輸出:小明
print(student)  # 輸出:{'age': 18}

# 鍵不存在時指定默認值
score = student.pop('score', '未知')
print(score)  # 輸出:未知

3. popitem() 方法:刪除最後一個鍵值對

Python 3.7+ 中,popitem() 刪除並返回最後插入的鍵值對(之前版本隨機刪除)。

student = {'name': '小明', 'age': 18, 'gender': '男'}

item = student.popitem()  # 刪除最後一個鍵值對
print(item)  # 輸出:('gender', '男')
print(student)  # 輸出:{'name': '小明', 'age': 18}

4. clear() 方法:清空字典

student = {'name': '小明', 'age': 18}
student.clear()  # 清空字典
print(student)  # 輸出:{}

四、字典的“改”:修改已有鍵的值

若鍵已存在,通過賦值操作直接覆蓋舊值即可:

student = {'name': '小明', 'age': 18}

student['age'] = 19  # 修改 'age' 的值
print(student)  # 輸出:{'name': '小明', 'age': 19}
  • 本質:與“新增”操作一致(鍵存在則修改,不存在則新增)。

五、字典的“查”:獲取鍵對應的值

查詢值的方式有多種,推薦優先使用 get() 避免報錯。

1. 直接用鍵訪問(易報錯)

student = {'name': '小明', 'age': 18}

print(student['name'])  # 輸出:小明
# print(student['score'])  # 錯誤:KeyError: 'score'(鍵不存在)

2. get() 方法(安全查詢)

get(key, default):鍵存在則返回值,不存在則返回 default(默認 None)。

student = {'name': '小明', 'age': 18}

# 鍵存在時返回值
print(student.get('name'))  # 輸出:小明

# 鍵不存在時返回默認值
score = student.get('score', '0分')
print(score)  # 輸出:0分

3. 批量查詢鍵/值/鍵值對

  • keys():獲取所有鍵(返回視圖對象,可轉爲列表)。
  • values():獲取所有值(返回視圖對象)。
  • items():獲取所有鍵值對(返回元組視圖)。
student = {'name': '小明', 'age': 18, 'gender': '男'}

print(student.keys())   # 輸出:dict_keys(['name', 'age', 'gender'])
print(student.values()) # 輸出:dict_values(['小明', 18, '男'])
print(student.items())  # 輸出:dict_items([('name', '小明'), ('age', 18), ('gender', '男')])

# 轉爲列表便於遍歷
print(list(student.keys()))  # 輸出:['name', 'age', 'gender']

六、注意事項

  1. 鍵必須唯一且不可變:重複鍵會被覆蓋,列表、集合不能作爲鍵。
   my_dict = {[1,2]: 'test'}  # 錯誤:列表不可作爲鍵
  1. 避免鍵不存在導致的錯誤:查詢時優先用 get(),而非直接用鍵訪問。
  2. 修改與新增的統一性dict[key] = value 既可以新增也可以修改,取決於鍵是否存在。

通過以上“增、刪、改、查”操作,你可以靈活管理字典中的數據。日常使用中,建議優先用 get() 查詢、pop() 刪除,並注意鍵的唯一性和不可變性。

小夜