Mis on KeyError Pythonis? Sõnaraamat ja nende käsitsemine

See artikkel annab teile üksikasjalikud ja põhjalikud teadmised selle kohta, kuidas lahendada KeyError Pythonis sõnastikus.

Enne kui sukeldume KeyErrorisse , on oluline teada, kuidas pütooni sõnastik on üles seatud. Selles artiklis käsitletakse järgmisi näpunäiteid:



Sõnastik Pythonis

The kontseptsioon Pythonis on juhuslik väärtuste kogu, kuhu on salvestatud andmeväärtused nagu kaart. Erinevalt teistest andmetüüpidest on elementidena ainult üks väärtus. Selles on võti: väärtuspaar.



KeyError Pythonis

Põhiväärtus muudab selle tõhusamaks. Koolon eraldab võtme ja väärtusepaari ning koma - iga võtme. See Pythoni sõnastik toimib sarnaselt tavalise sõnastikuga. Vastavad võtmed peaksid olema unikaalsed ja muutumatute andmetüüpidega, nagu stringid, täisarvud ja hulbad, kuid võtmeväärtusi saab korrata ja neil võib olla mis tahes tüüpi. Võib olla klahve, mis on stringid, mis viitavad numbritele ja vastupidi.



Vaatame allpool kodeeritud näite abil, kuidas sõnastik toimib.

# Tühja sõnaraamatu loomine Dict = {} print ('Null dict:') print (Dict) # Sõnaraamatu loomine täisnuppudega Dict = {1: 'Fun', 2: 'And', 3: 'Frolic'} print ( 'nDictionary täisarvuklahvide abil:') print (Dict) # Segaklahvidega sõnastiku loomine Dict = {'Nimi': 'Arun', 1: [12, 23, 34, 45]} print ('nDictionary koos segaklahvide kasutamine: ') print (Dict) # Dict () meetodiga sõnaraamatu loomine Dict = dict ({1:' saksa keel, 2: 'keel', 3: 'on lõbus'}) print ('nDictionary with dict (): ') print (Dict) # Sõnastik, kus iga üksus on paariline Dict = dict ([(1,' Tere '), (2,' Bye ')]) print (' nDictionary igaühega üksus paarina: ') print (Dict)

KeyError Pythonis

Kuna meil on selge, mis on pythoni sõnastik ja kuidas see töötab. Vaatame nüüd, mis on peamine viga. KeyError Pythonis tõuseb, kui proovite juurde pääseda võtmele, mida pole sõnastikus.



Kaardiloogika on andmestruktuur, mis kaardistab ühe andmekogumi oluliste teistega. Seega on see viga, mis tõstatatakse, kui kaardistamisele juurde pääseb ja seda ei leita. See on tuttav otsimisveaga, kus semantiline viga märgitakse otsitava võtmena, seda mälust ei leia. Seda saab paremini illustreerida allolevas koodis.

markeriliides Java näites

Püüan siin pääseda võtmele nimega “D”, mida sõnastikus pole. Seega visatakse viga kohe, kui see leiab erandi. Ülejäänud sõnastikus olevate klahvide puhul, mis on õigesti trükitud, on neile vastavad täpsed väärtused.

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

KeyErrori käitlemise mehhanism Pythonis

Kõik, kes puutuvad kokku KeyErroriga, saavad sellega vastutustundlikult hakkama saada. Tema oskus on kaaluda teatud programmi kõiki võimalikke sisendeid ja ebakindlate kirjetega edukalt hakkama saada.

Sõltuvalt teie kasutusjuhtumist võivad mõned neist lahendustest olla paremad või ei pruugi olla ka see, mida otsite. Sellest hoolimata on lõppeesmärk peatada ootamatute võtmetõrgete erandite ilmumine.

Kui teie enda koodis sisalduvast sõnaraamatust ilmneb tõrge, saate .get () abil eraldada kas määratud võtme väärtus või vaikeväärtus. Vaatame proovi.

// Puuviljade loetelu ja nende hinnad. while (1): puuviljad = {'Apple': 300, 'Papaya': 128, 'Kiwi': 233} fruit = input ('Get price for:') fruit1 = fruits.get (fruit) if fruit1: print ( f '{fruit} on {fruit1} ruupiat.') else: print (f '{fruit}' i maksumus pole teada. ')

KeyError'i üldine lahendus

Tavaline lahendus on see, et saate selliste probleemide lahendamiseks alati kasutada blokki try-paitsi, tõstes vastava koodi ja pakkudes varunduslahenduse. Lisateabe saamiseks vaadake allolevat koodi.

// while (1): age = {'Jophi': 12, 'Rao': 20, 'Irvin': 16} person = input ('Get age for:') try: print (f '{person} is { vanused [inimene]} aastat vana. '), välja arvatud KeyError: print (f' {isiku} vanus pole teada. ') //

Sellega jõuame Pythoni artiklis selle KeyErroriga lõpuni. Loodan, et see artikkel oli informatiivne, heites valgust Pythoni KeyError erandile ja kuidas seda saaks tõsta. Samuti võite olla teadlik sellest, et kui probleemiks on sõnastiku võtmete otsimine teie enda koodis, saate otse sõnastikus olevale võtmele juurde pääseda vaikimisi tagastatava väärtusega .get () meetodi kasutamisele.

Kui probleem ei tulene teie enda koodist, kasutage koodi voo paremaks juhtimiseks proovivõtuprotokolli.

Põhjalike teadmiste saamiseks Pythonist koos selle erinevate rakendustega saate seda teha reaalajas veebikoolituse jaoks, millel on 24-tunnine tugi ja juurdepääs kogu elule.

Kas teil on meile küsimus? Mainige neid jaotise „KeyError Pythonis” kommentaaride jaotises ja me võtame teiega ühendust.