0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Hướng Dẫn Chi Tiết Khắc Phục Lỗi KeyError Trong Python

Đăng vào 1 tháng trước

• 3 phút đọc

Chủ đề:

Python

Khắc Phục Lỗi KeyError Trong Python: Hướng Dẫn Từ A - Z

Khi làm việc với từ điển (dictionary) trong Python, bạn có thể sẽ phải đối mặt với một vấn đề khá phổ biến: ngoại lệ KeyError. Trong Python, từ điển là một trong những cấu trúc dữ liệu thiết yếu, cho phép lưu trữ và truy xuất các cặp khóa-giá trị một cách hiệu quả. Tuy nhiên, nếu bạn cố gắng truy cập một giá trị mà không có khóa tương ứng trong từ điển, bạn sẽ gặp phải lỗi KeyError. Vậy làm thế nào để xử lý vấn đề này? Hãy cùng khám phá các phương pháp hữu ích trong bài viết dưới đây.

Hiểu về KeyError và Cách Xử Lý

Nguyên nhân xuất hiện ngoại lệ KeyError là do bạn cố gắng truy cập một khóa không nằm trong từ điển. Để hiểu rõ hơn, hãy xem xét ví dụ từ điển sau:

python Copy
books = {
    "1984": "George Orwell",
    "To Kill a Mockingbird": "Harper Lee",
    "The Great Gatsby": "F. Scott Fitzgerald"
}

Trong từ điển này, các khóa là tên sách, và giá trị tương ứng là tên tác giả. Dưới đây là một đoạn mã cố gắng truy cập tác giả của một cuốn sách không tồn tại trong từ điển:

python Copy
print(books["Brave New World"])

Khi thực hiện đoạn mã này, bạn sẽ nhận được thông báo lỗi:

plaintext Copy
KeyError: 'Brave New World'

Xử Lý Ngay Lập Tức Với Khối try-except

Để xử lý một cách rõ ràng các lỗi KeyError, bạn có thể sử dụng khối try-except như sau:

python Copy
try:
    author = books["Brave New World"]
except KeyError:
    author = "Không tìm thấy cuốn sách"

Với đoạn mã trên, nếu có KeyError xảy ra, biến author sẽ tự động được gán giá trị "Không tìm thấy cuốn sách".

Sử Dụng Phương Thức get() Để Tránh KeyError

Một phương pháp đơn giản hơn để truy cập giá trị và tránh gặp lỗi là sử dụng phương thức get() của từ điển. Phương thức này cho phép bạn thiết lập một giá trị mặc định nếu khóa không tồn tại:

python Copy
author = books.get("Brave New World", "Không tìm thấy cuốn sách")

Kết quả từ đoạn mã này sẽ là:

plaintext Copy
Không tìm thấy cuốn sách

Lưu ý rằng phương thức get() không thay đổi nội dung của từ điển ban đầu. Nếu bạn muốn thêm một khóa mới với giá trị mặc định, setdefault() sẽ là lựa chọn tốt.

Sử Dụng defaultdict Từ Module collections

Một cách tiếp cận gọn gàng hơn để xử lý KeyError là sử dụng defaultdict từ module collections trong Python. defaultdict cho phép bạn xác định một giá trị mặc định được sử dụng cho các khóa chưa có, như sau:

python Copy
from collections import defaultdict

books_default = defaultdict(lambda: "Không tìm thấy cuốn sách", books)

Khi bạn truy cập một khóa không tồn tại trong từ điển này, giá trị mặc định sẽ được trả về:

python Copy
author = books_default["Brave New World"]
print(author)

Kết quả cũng sẽ cho bạn:

plaintext Copy
Không tìm thấy cuốn sách

Kết Luận

Hy vọng qua bài viết này, bạn đã nắm được các phương pháp khác nhau để xử lý lỗi KeyError trong Python. Tóm lại:

  • Sử dụng khối try-except để xử lý lỗi một cách rõ ràng.
  • Tham khảo phương thức get() để tránh gặp phải KeyError.
  • Xem xét sử dụng defaultdict khi bạn cần giá trị mặc định cho các khóa mới.

Cảm ơn bạn đã theo dõi bài hướng dẫn này!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào