Python KeyError 詳解

Python KeyError 是一個常見的錯誤,它表示在字典中找不到指定的鍵。在Python中,字典是一種可以將鍵與值對應的資料結構,而KeyError則是當程式嘗試存取字典中不存在的鍵時,會拋出的例外。

KeyError 的發生

KeyError 的發生最常見的情況是當程式嘗試存取字典中不存在的鍵時,例如:

my_dict = {'name': 'John', 'age': 25}

# 嘗試存取不存在的鍵
print(my_dict['gender'])

執行上面的程式碼會拋出 KeyError:

Traceback (most recent call last):
  File "test.py", line 5, in 
    print(my_dict['gender'])
KeyError: 'gender'

另外,KeyError 也可能會在使用 dict.pop() 時發生,例如:

my_dict = {'name': 'John', 'age': 25}

# 嘗試存取不存在的鍵
my_dict.pop('gender')

執行上面的程式碼也會拋出 KeyError:

Traceback (most recent call last):
  File "test.py", line 5, in 
    my_dict.pop('gender')
KeyError: 'gender'

處理 KeyError

當程式嘗試存取字典中不存在的鍵時,最好的處理方式是使用 dict.get() 方法,它可以指定一個預設值,如果字典中沒有指定的鍵,則會返回預設值,例如:

my_dict = {'name': 'John', 'age': 25}

# 使用 dict.get() 方法
gender = my_dict.get('gender', 'Unknown')

print(gender)

執行上面的程式碼會輸出:

Unknown

另外,如果你想要在字典中添加一個新的鍵值對,可以使用 dict.setdefault() 方法,它可以指定一個預設值,如果字典中沒有指定的鍵,則會添加一個新的鍵值對,例如:

my_dict = {'name': 'John', 'age': 25}

# 使用 dict.setdefault() 方法
gender = my_dict.setdefault('gender', 'Unknown')

print(my_dict)

執行上面的程式碼會輸出:

{'name': 'John', 'age': 25, 'gender': 'Unknown'}

總結

在本文中,我們詳細介紹了Python KeyError,以及如何處理它。KeyError 的發生最常見的情況是當程式嘗試存取字典中不存在的鍵時,最好的處理方式是使用 dict.get()dict.setdefault() 方法。

Categorized in:

Tagged in: