KeyError ใน Python คืออะไร? พจนานุกรมและการจัดการพวกเขา



บทความนี้จะให้ความรู้โดยละเอียดและครอบคลุมเกี่ยวกับวิธีแก้ไข KeyError ใน Python ในพจนานุกรม

ก่อนที่เราจะดำดิ่งสู่ KeyError ใน สิ่งสำคัญคือต้องทราบว่าพจนานุกรมใน python ถูกตั้งค่าอย่างไร คำแนะนำต่อไปนี้จะกล่าวถึงในบทความนี้:

พจนานุกรมใน Python

แนวคิดใน Python คือการรวบรวมค่าแบบสุ่มซึ่งมีการจัดเก็บค่าข้อมูลเช่นแผนที่ ซึ่งแตกต่างจากประเภทข้อมูลอื่น ๆ ที่มีเพียงค่าเดียวเป็นองค์ประกอบ ถือคีย์: คู่ค่า





KeyError ใน Python

ค่าคีย์ทำให้มีประสิทธิภาพมากขึ้น เครื่องหมายทวิภาคจะแยกคู่ของคีย์และค่าและ 'ลูกน้ำ' จะแยกแต่ละคีย์ พจนานุกรมใน python นี้ทำงานคล้ายกับพจนานุกรมทั่วไป คีย์ตามลำดับควรไม่ซ้ำกันและเป็นประเภทข้อมูลที่ไม่เปลี่ยนรูปเช่นสตริงจำนวนเต็มและทูเพิล แต่คีย์ - ค่าสามารถทำซ้ำได้และอนุญาตให้เป็นประเภทใดก็ได้ อาจมีคีย์ซึ่งเป็นสตริงที่อ้างถึงตัวเลขและในทางกลับกัน



ให้เราดูว่าพจนานุกรมทำงานอย่างไรผ่านตัวอย่างโค้ดด้านล่าง

# การสร้างพจนานุกรม Dict ว่างเปล่า = {} print ('Null dict:') print (Dict) # การสร้างพจนานุกรมด้วย Integer Keys Dict = {1: 'Fun', 2: 'And', 3: 'Frolic'} print ( 'nDictionary with the use of Integer Keys:') print (Dict) # การสร้างพจนานุกรมด้วยคีย์ผสม Dict = {'Name': 'Arun', 1: [12, 23, 34, 45]} print ('nDictionary with the use of Mixed Keys: ') print (Dict) # การสร้างพจนานุกรมด้วยวิธีการ dict () Dict = dict ({1:' German ', 2:' language ', 3:' is fun '}) print (' nDictionary with การใช้ dict (): ') พิมพ์ (Dict) # พจนานุกรมที่มีแต่ละรายการเป็น Pair Dict = dict ([(1,' Hello '), (2,' Bye ')]) print (' nDictionary กับแต่ละ รายการเป็นคู่: ') พิมพ์ (Dict)

KeyError ใน Python

เนื่องจากเรามีความชัดเจนว่าพจนานุกรมใน python คืออะไรและทำงานอย่างไร ตอนนี้ให้เราดูว่าข้อผิดพลาดที่สำคัญคืออะไร KeyError ใน Python จะเพิ่มขึ้นเมื่อคุณพยายามเข้าถึงคีย์ที่ไม่ได้อยู่ในพจนานุกรม



ตรรกะการแมปคือโครงสร้างข้อมูลที่จับคู่ข้อมูลชุดหนึ่งกับชุดข้อมูลอื่น ๆ ดังนั้นจึงเป็นข้อผิดพลาดซึ่งเกิดขึ้นเมื่อมีการเข้าถึงและไม่พบการทำแผนที่ เป็นที่คุ้นเคยกับข้อผิดพลาดในการค้นหาที่ข้อผิดพลาดทางความหมายจะถูกระบุว่าเป็นคีย์ที่คุณกำลังมองหาไม่พบในหน่วยความจำ สามารถแสดงได้ดีกว่าในโค้ดด้านล่าง

ลำดับ fibonacci java สำหรับลูป

ที่นี่ฉันกำลังพยายามเข้าถึงคีย์ชื่อ“ D” ซึ่งไม่มีอยู่ในพจนานุกรม ดังนั้นข้อผิดพลาดจะเกิดขึ้นทันทีที่พบข้อยกเว้น อย่างไรก็ตามคีย์ที่เหลืออยู่ในพจนานุกรมซึ่งพิมพ์อย่างถูกต้องมีค่าที่ตรงกันทั้งหมด

// อายุ = {'A': 30, 'B': 28, 'C': 33} พิมพ์ (อายุ ['A']) พิมพ์ (อายุ ['B']) พิมพ์ (อายุ ['C']) พิมพ์ (อายุ ['D']) //

กลไกการจัดการสำหรับ KeyError ใน Python

ใครก็ตามที่พบ KeyError สามารถจัดการได้อย่างมีความรับผิดชอบ เป็นทักษะของเขาในการพิจารณาปัจจัยที่เป็นไปได้ทั้งหมดของโปรแกรมหนึ่ง ๆ และจัดการกับรายการที่ล่อแหลมได้สำเร็จ

ขึ้นอยู่กับกรณีการใช้งานของคุณวิธีแก้ปัญหาเหล่านี้บางอย่างอาจดีกว่าหรืออาจไม่ใช่วิธีแก้ปัญหาที่คุณกำลังมองหา อย่างไรก็ตามเป้าหมายสูงสุดคือการหยุดข้อผิดพลาดของคีย์ที่ไม่คาดคิดไม่ให้โผล่ขึ้นมา

หากเกิดข้อผิดพลาดจากพจนานุกรมในรหัสของคุณเองคุณสามารถใช้. get () เพื่อแยกค่าตามคีย์ที่ระบุหรือค่าเริ่มต้น ให้เราดูตัวอย่าง

// รายการผลไม้และราคา ในขณะที่ (1): fruits = {'Apple': 300, 'Papaya': 128, 'Kiwi': 233} fruit = input ('Get price for:') fruit1 = fruits.get (fruit) if fruit1: print ( f '{fruit} คือ {fruit1} rupees.') else: print (ไม่ทราบราคาของ f '{fruit}')

โซลูชันทั่วไปสำหรับ KeyError

วิธีแก้ปัญหาตามปกติคือคุณสามารถใช้บล็อก try-except เพื่อแก้ไขปัญหาดังกล่าวได้ตลอดเวลาโดยการเพิ่มรหัสที่เหมาะสมและจัดหาโซลูชันสำรอง ตรวจสอบรหัสด้านล่างเพื่อความชัดเจนยิ่งขึ้น

// while (1): age = {'Jophi': 12, 'Rao': 20, 'Irvin': 16} person = input ('Get age for:') try: print (f '{person} is { อายุ [คน]} ปี ') ยกเว้น KeyError: print (ไม่ทราบอายุของ f' {person} ') //

ด้วยเหตุนี้เราจึงมาถึงจุดสิ้นสุดของบทความ KeyError ใน Python ฉันหวังว่าบทความนี้จะให้ข้อมูลในการแจ้งข้อยกเว้น KeyError ของ Python และวิธีการเพิ่มขึ้น นอกจากนี้คุณอาจทราบแล้วว่าในกรณีที่ปัญหาคือการค้นหาคีย์พจนานุกรมในรหัสของคุณเองคุณสามารถเปลี่ยนจากการเข้าถึงคีย์โดยตรงบนพจนานุกรมเป็นการใช้เมธอด. get () ด้วยค่าส่งคืนเริ่มต้น

หากปัญหาไม่ได้มาจากโค้ดของคุณเองให้ใช้บล็อก try-except เพื่อควบคุมโฟลว์ของโค้ดได้ดีขึ้น

หากต้องการรับความรู้เชิงลึกเกี่ยวกับ Python พร้อมกับแอพพลิเคชั่นต่างๆคุณสามารถทำได้ สำหรับการฝึกอบรมออนไลน์สดพร้อมการสนับสนุนตลอด 24 ชั่วโมงทุกวันและการเข้าถึงตลอดชีวิต

มีคำถามสำหรับเรา? พูดถึงพวกเขาในส่วนความคิดเห็นของ“ KeyError in Python” แล้วเราจะติดต่อกลับไป