Omgaan met ontbrekende sleutels in Python-woordenboeken

| | | | | | | | | | | | | | | | | | | |

# Python-code om het woordenboek te laten zien en
# missing waardefout


# initialiseren van het woordenboek

d = { `a` : 1 , ` b` : 2 }


# probeert de waarde van de ontbrekende sleutel weer te geven

print ( "De waarde geassocieerd met ` c` is: " )

print (d [ ` c` ])

Fout:

Traceback (meest recente oproep als laatste): bestand "46a9aac96614587f5b794e451a8f4f5f.py", regel 9, in print (d [`c`]) KeyError:` c` 

In in het bovenstaande voorbeeld gaf geen enkele sleutel met de naam "c" in het woordenboek geen runtime-fout. Om dergelijke omstandigheden te voorkomen en om de gebruiker te waarschuwen dat een specifieke sleutel ontbreekt of om een ​​standaardbericht naar die locatie te sturen, zijn er verschillende manieren om ontbrekende sleutels aan te pakken.

Methode 1: met behulp van get ()

De get (key, def_val) methode is handig wanneer we een sleutel moeten valideren. Als de sleutel aanwezig is, wordt de waarde die aan de sleutel is gekoppeld afgedrukt, anders wordt de def_value die in de argumenten is doorgegeven, geretourneerd.

Methode 2: met behulp van setdefault ()

setdefault (sleutel, def_value) werkt als get (), maar het verschil is dat elke keer dat een sleutel ontbreekt, er een nieuwe sleutel wordt gemaakt met een def_value die is gekoppeld aan de sleutel doorgegeven aan argumenten.

Om de bovenstaande functies te implementeren, klikt u Defaultdict " — het is een container die is gedefinieerd in een module met de naam "verzameling ". Er is een functie (standaardfabriek) als argument nodig. De standaardinstelling is de fabrieksstandaard is ingesteld op "int", die is, 0 . Als sleutel ontbreekt — defaultdict, retourneert en default is weergegeven door standaard . Het heeft voorrang op get () of setdefault ().

# Python-code om standaarddictaat aan te tonen


# import & quot; collecties & quot; voor defaultdict

import collecties


# standaarddeclaratie
# stelt de standaardwaarde "Sleutel niet gevonden" in voor ontbrekende sleutels

defd = verzamelingen. defaultdict ( lambda : `Sleutel niet gevonden` )


# initialiserende waarden

defd [ `a` ] = 1


# initialiseren van waarden

defd [ `b` ] = 2


# afdrukwaarde

print ( "De waarde geassocieerd met ` a` is: " , einde = "")

print (defd [ `a` ])


# afdrukwaarde geassocieerd met ' c '

print ( "De waarde die hoort bij ` c` is: " , end = " ")

print ( defd [ `c` ])

Uitvoer:

De waarde geassocieerd met `a` is: 1 De waarde geassocieerd met `c` is: Sleutel niet gevonden 

Dit artikel met dank aan Manjeet Singh . Als u als Python.Engineering bent en graag wilt bijdragen, kunt u ook een artikel schrijven met Contribut.python.engineering of door een artikel te plaatsen bijdragen @ python.engineering. Zie mijn artikel op de Python.Engineering-startpagina en help andere nerds.

Plaats opmerkingen als je iets verkeerd vindt of als je meer informatie wilt delen over het hierboven besproken onderwerp.