Làm cách nào để sử dụng KeyError trong Python?

Trước khi chúng ta đi sâu vào KeyError trong Python, điều quan trọng là phải biết cách thiết lập từ điển trong python. Các gợi ý sau đây sẽ được thảo luận trong bài viết này

Từ điển trong Python

Khái niệm từ điển trong Python là một tập hợp ngẫu nhiên các giá trị, đã lưu trữ các giá trị dữ liệu giống như một bản đồ. Nó không giống như các kiểu dữ liệu khác chỉ chứa một giá trị duy nhất dưới dạng một phần tử. Nó giữ chìa khóa. cặp giá trị

Giá trị quan trọng làm cho nó hiệu quả hơn. Dấu hai chấm phân tách cặp khóa và giá trị và dấu 'dấu phẩy' phân tách từng khóa. Từ điển này trong python có chức năng tương tự như một từ điển thông thường. Các khóa tương ứng phải là duy nhất và thuộc các loại dữ liệu bất biến, chẳng hạn như chuỗi, số nguyên và bộ dữ liệu, nhưng các khóa-giá trị có thể được lặp lại và được phép thuộc bất kỳ loại nào. Có thể có các khóa, là các chuỗi tham chiếu đến các số và ngược lại

Chúng ta hãy xem cách một từ điển hoạt động thông qua ví dụ được mã hóa bên dưới

# Creating an empty Dictionary 
Dict = {} 
print["Null dict: "] 
print[Dict] 

# Creating Dictionary with Integer Keys 
Dict = {1: 'Fun', 2: 'And', 3: 'Frolic'} 
print["nDictionary with the use of Integer Keys: "] 
print[Dict] 

# Creating Dictionary with Mixed keys 
Dict = {'Name': 'Arun', 1: [12, 23, 34, 45]} 
print["nDictionary with the use of Mixed Keys: "] 
print[Dict] 

# Creating a Dictionary with dict[] method 
Dict = dict[{1: 'German', 2: 'language', 3:'is fun'}] 
print["nDictionary with the use of dict[]: "] 
print[Dict] 

# A Dictionary having each item as a Pair 
Dict = dict[[[1, 'Hello'], [2, 'Bye']]] 
print["nDictionary with each item as a pair: "] 
print[Dict]

Vì chúng ta đã rõ từ điển trong python là gì và nó hoạt động như thế nào. Bây giờ chúng ta hãy xem lỗi phím là gì. KeyError trong Python xuất hiện khi bạn cố gắng truy cập một khóa không có trong từ điển

Logic ánh xạ là một cấu trúc dữ liệu ánh xạ một bộ dữ liệu tới các bộ dữ liệu quan trọng khác. Do đó, đó là một lỗi, xảy ra khi ánh xạ được truy cập và không tìm thấy. Nó quen thuộc với một lỗi tra cứu trong đó lỗi ngữ nghĩa sẽ được nêu là khóa bạn đang tìm kiếm không được tìm thấy trong bộ nhớ của nó. Điều này có thể được minh họa rõ hơn trong đoạn mã dưới đây

Ở đây tôi đang cố gắng truy cập một khóa có tên là “D” không có trong từ điển. Do đó, lỗi được đưa ra ngay khi tìm thấy ngoại lệ. Tuy nhiên, các khóa còn lại có trong từ điển, được in chính xác, có các giá trị chính xác tương ứng với chúng.  

// 
ages={'A':30,'B':28,'C':33}
print[ages['A']]
print[ages['B']]
print[ages['C']]
print[ages['D']]
//

Cơ chế xử lý lỗi KeyError trong Python

Bất cứ ai gặp KeyError đều có thể xử lý nó một cách có trách nhiệm. Anh ấy có kỹ năng xem xét tất cả các đầu vào có thể có cho một chương trình nhất định và xử lý thành công bất kỳ đầu vào bấp bênh nào

Tùy thuộc vào trường hợp sử dụng của bạn, một số giải pháp này có thể tốt hơn hoặc cũng có thể không phải là giải pháp chính xác mà bạn đang tìm kiếm. Tuy nhiên, mục tiêu cuối cùng là ngăn các trường hợp ngoại lệ lỗi phím không mong muốn xuất hiện

Nếu có lỗi từ từ điển trong mã của riêng bạn, bạn có thể sử dụng. get[] để trích xuất giá trị tại khóa đã chỉ định hoặc giá trị mặc định. Chúng ta hãy xem một mẫu

//List of fruits and their prices. 

while[1]:
fruits= {'Apple': 300, 'Papaya': 128, 'Kiwi': 233}
fruit= input['Get price for: ']
fruit1 = fruits.get[fruit]
if fruit1:
    print[f'{fruit} is {fruit1} rupees.']
else:
    print[f"{fruit}'s cost is unknown."]

Một giải pháp chung cho KeyError

Giải pháp thông thường là bạn luôn có thể sử dụng khối try-ngoại trừ để giải quyết các vấn đề đó bằng cách tăng mã thích hợp và cung cấp giải pháp dự phòng. Kiểm tra mã dưới đây để rõ ràng hơn

//
while[1]:
 ages = {'Jophi': 12, 'Rao': 20, 'Irvin': 16} 
 person = input['Get age for: ']

 try:
    print[f'{person} is {ages[person]} years old.']
 except KeyError:
    print[f"{person}'s age is unknown."]
//

Đến đây, chúng ta đã kết thúc bài viết KeyError in Python này. Tôi hy vọng bài viết này cung cấp nhiều thông tin trong việc làm sáng tỏ ngoại lệ KeyError của Python và cách khắc phục nó. Ngoài ra, bây giờ bạn có thể biết rằng trong trường hợp vấn đề là tra cứu khóa từ điển trong mã của riêng bạn, thì bạn có thể chuyển từ truy cập khóa trực tiếp trên từ điển sang sử dụng. phương thức get[] với giá trị trả về mặc định

Nếu sự cố không đến từ mã của riêng bạn, thì hãy sử dụng khối thử ngoại trừ để kiểm soát tốt hơn luồng mã của bạn

Để có kiến ​​thức chuyên sâu về Python cùng với các ứng dụng khác nhau của nó, bạn có thể đăng ký ngay bây giờ để tham gia khóa đào tạo Python trực tiếp với sự hỗ trợ 24/7 và quyền truy cập trọn đời

Có một câu hỏi cho chúng tôi?

Bạn có thể đã gặp phải KeyError khi làm việc với từ điển trong python. Trong bài viết này, chúng ta sẽ thảo luận về KeyError là gì, nó xảy ra như thế nào và cách chúng ta có thể tránh KeyError khi làm việc với từ điển python

Mục lục

Python KeyError là gì?

Nói một cách đơn giản, KeyError là một ngoại lệ được đưa ra bởi chương trình python khi chúng tôi cố gắng truy cập một giá trị từ từ điển bằng một khóa không có trong từ điển.  

Ví dụ, hãy xem chương trình sau. Ở đây từ điển myDict có các khóa 1, 2 và 3 với các giá trị 1, 4 và 9 được liên kết với các khóa. Khi chúng tôi cố gắng truy cập từ điển bằng phím 4, chương trình sẽ báo lỗi KeyError. Điều này là do 4 không có trong từ điển dưới dạng khóa

myDict = {1: 1, 2: 4, 3: 9}
print["The dictionary is:", myDict]
print[myDict[4]]

đầu ra

The dictionary is: {1: 1, 2: 4, 3: 9}
Traceback [most recent call last]:
  File "/home/aditya1117/PycharmProjects/pythonProject/string.py", line 3, in 
    print[myDict[4]]
KeyError: 4

Làm cách nào để tránh ngoại lệ Python KeyError?

Có nhiều cách khác nhau để tránh ngoại lệ KeyError. Hãy để chúng tôi thảo luận từng cái một

Sử dụng câu lệnh If other

Sử dụng câu lệnh if other, chúng ta có thể kiểm tra xem một khóa đã cho có trong các khóa của từ điển hay không trước khi truy cập giá trị. Nó giúp chúng tôi tránh ngoại lệ KeyError

myDict = {1: 1, 2: 4, 3: 9}
print["The dictionary is:", myDict]
key = 4
if key in myDict.keys[]:
    print[myDict[key]]
else:
    print["{} not a key of dictionary".format[key]]

đầu ra

The dictionary is: {1: 1, 2: 4, 3: 9}
4 not a key of dictionary

Hạn chế ở đây là  mỗi lần chúng tôi phải kiểm tra xem một khóa nhất định có trong các khóa của từ điển hay không. Công việc bổ sung này có thể tránh được nếu chúng ta sử dụng phương thức get[] để truy cập các giá trị từ từ điển

Sử dụng phương thức get[]

Phương thức get[], khi được gọi trên từ điển, sẽ lấy khóa đã cho và một giá trị tùy chọn làm đầu vào. Nếu khóa đã cho có trong từ điển, nó sẽ cung cấp giá trị được liên kết với khóa dưới dạng đầu ra như sau

________số 8

đầu ra

The dictionary is: {1: 1, 2: 4, 3: 9}
Key is: 3
Value associated to the key is: 9

Khi khóa đã cho không có trong từ điển, nó sẽ trả về Không có nếu không có giá trị tùy chọn nào được chuyển

// 
ages={'A':30,'B':28,'C':33}
print[ages['A']]
print[ages['B']]
print[ages['C']]
print[ages['D']]
//
0

đầu ra

// 
ages={'A':30,'B':28,'C':33}
print[ages['A']]
print[ages['B']]
print[ages['C']]
print[ages['D']]
//
1

Nếu chúng ta chuyển một giá trị tùy chọn làm đầu vào cho phương thức get[], nó sẽ trả về giá trị khi khóa đã cho không có trong từ điển

// 
ages={'A':30,'B':28,'C':33}
print[ages['A']]
print[ages['B']]
print[ages['C']]
print[ages['D']]
//
2

đầu ra

// 
ages={'A':30,'B':28,'C':33}
print[ages['A']]
print[ages['B']]
print[ages['C']]
print[ages['D']]
//
3

Sử dụng Thử ngoại trừ

Chúng ta có thể sử dụng python try except blocks để xử lý ngoại lệ KeyError. Để làm được điều đó, chúng tôi sẽ thực thi mã để truy cập giá trị bằng cách sử dụng khóa đã cho trong khối thử và sẽ xử lý ngoại lệ trong khối ngoại trừ như sau

The dictionary is: {1: 1, 2: 4, 3: 9}
Traceback [most recent call last]:
  File "/home/aditya1117/PycharmProjects/pythonProject/string.py", line 3, in 
    print[myDict[4]]
KeyError: 4
0

đầu ra

The dictionary is: {1: 1, 2: 4, 3: 9}
Traceback [most recent call last]:
  File "/home/aditya1117/PycharmProjects/pythonProject/string.py", line 3, in 
    print[myDict[4]]
KeyError: 4
1

Phần kết luận

Trong bài viết này, chúng tôi đã thảo luận về KeyErrors và cách xử lý chúng. Để tìm hiểu thêm về lập trình python, bạn có thể đọc bài viết này về hiểu danh sách. Bạn cũng có thể thích bài viết này về danh sách liên kết trong Python

Có liên quan

Đào tạo Python được đề xuất

Món ăn. Python 3 cho người mới bắt đầu

Hơn 15 giờ nội dung video với hướng dẫn có hướng dẫn cho người mới bắt đầu. Tìm hiểu cách tạo các ứng dụng trong thế giới thực và nắm vững kiến ​​thức cơ bản

Làm cách nào để kiểm tra KeyError trong Python?

Giải pháp thông thường. . Nếu KeyError xuất hiện do tra cứu khóa từ điển không thành công trong mã của riêng bạn, bạn có thể sử dụng. get[] để trả về giá trị được tìm thấy tại khóa đã chỉ định hoặc giá trị mặc định .

KeyError trong Python là gì?

->Ngoại lệ. ->Lỗi tra cứu. ->Lỗi phím. Một Python KeyError xuất hiện khi bạn cố gắng truy cập một khóa không hợp lệ trong từ điển. Nói một cách đơn giản, khi bạn thấy KeyError, điều đó có nghĩa là không tìm thấy khóa bạn đang tìm kiếm

Làm cách nào để bỏ qua KeyError Python?

Tránh Lỗi Khóa khi truy cập Khóa Từ điển . Nếu khóa bị thiếu, Không được trả lại. Chúng tôi cũng có thể chỉ định một giá trị mặc định để trả về khi thiếu khóa. using get[] function to access the key value. If the key is missing, None is returned. We can also specify a default value to return when the key is missing.

KeyError 2 trong Python là gì?

KeyError trong Python xuất hiện khi bạn cố gắng truy cập một khóa không có trong từ điển. Logic ánh xạ là một cấu trúc dữ liệu ánh xạ một bộ dữ liệu tới các bộ dữ liệu quan trọng khác. Do đó, đó là một lỗi, xảy ra khi ánh xạ được truy cập và không tìm thấy

Chủ Đề