Python

Python standaarddictaat

Python standaarddictaat

Python biedt veel ingebouwde gegevensstructuren, zoals lijsten, tuples en woordenboeken, om gegevens efficiënt op te slaan en te beheren. Woordenboeken bieden een eenvoudige manier om gegevens op te slaan als sleutel-waardeparen. Een sleutel fungeert als een index en wordt gebruikt om gegevens op te halen. Sleutels moeten uniek en onveranderlijk zijn in het hele woordenboek. Sleutels zijn meestal tekenreeksen en gehele getallen, hoewel de waarde van een sleutel van elk type kan zijn, zoals een geheel getal, tekenreeks, getal met drijvende komma of complex getal. Ondertussen kan een woordenboek een verzameling bevatten, zoals een lijst, tuple of een ander type woordenboek. Een woordenboek in Python wordt gemaakt met behulp van een paar accolades, waarin elk sleutel-waardepaar wordt gescheiden door een komma.

Wat als u een specifieke sleutel probeert te openen of te wijzigen in een woordenboek dat niet bestaat?? Welnu, in dit geval zal de Python-interpreter de "KeyError" -fout oproepen en de uitvoering van het programma beëindigen.

Laten we eens kijken naar een voorbeeld van de "KeyError"-fout.

#een woordenboek maken
my_dict= 1:"Hallo",2:"Welkom",3:"LinuxHint"
#toegang tot een sleutel die niet bestaat
mijn_dictaat[4]

Uitgang:

Om deze fout af te handelen, biedt Python het defaultdict-type, een woordenboekklasse die te vinden is in de collecties-module. Dit artikel behandelt het Python-standaarddict in detail.

Uitleg en voorbeelden van wanbetaling

Het standaarddictaat is het alternatief van het Python-woordenboek. Het geeft objecten van het woordenboektype terug type. De defaultdict is een subklasse van dict. In het geval van een ontbrekende sleutel, in plaats van een "KeyError" -fout te veroorzaken, wordt de standaardwaarde gegeven voor de niet-bestaande sleutel. De syntaxis van defaultdict is als volgt:

defaultdict(default_factory)

De defaultdict-functie neemt de parameter default_factory als argument. De functie default_factory retourneert de standaardwaarde voor het gedefinieerde defaultdict. Als we een ontbrekende sleutel proberen te openen of te wijzigen, retourneert de functie default_factory de standaardwaarde als resultaat. Als de functie default_factory ontbreekt, zal de defaultdic een "KeyError" -fout veroorzaken als er sleutels ontbreken.

Eerst zullen we een defaultdic in ons Python-script implementeren om toegang te krijgen tot zowel bestaande als ontbrekende sleutels.

#importeer het standaarddict uit de incassomodule
uit collecties import defaultdict
#defining van een functie om de standaardwaarde terug te geven
def mijn_func():
print("De sleutel is niet gedefinieerd")
#een standaarddictaat maken
#passing the my_func() als argument voor defaultdict
mijn_dict = standaarddict (mijn_func)
#definiëren van de sleutels en waarden
my_dict[1]="Hallo"
my_dict[2]="Welkom"
my_dict[3]="LinuxHint"
#toegang tot de waarden met behulp van toetsen
print(mijn_dictaat[1])
print(mijn_dictaat[2])
print(mijn_dictaat[3])
#toegang tot de ontbrekende of niet gedefinieerde sleutel
mijn_dictaat[4]

Uitgang:

De [4] is de ontbrekende sleutel. Dus in plaats van een "KeyError" -fout te veroorzaken, roept het de functie default_factory aan, die de standaardwaarde retourneert.


Een lambda-functie, ook wel een anonieme functie genoemd, kan ook worden gebruikt als de parameter default_factory.

Vervolgens zullen we een lambda-functie implementeren en deze als argument doorgeven aan de defaultdict.

#importeer het standaarddict uit de incassomodule
uit collecties import defaultdict
#een standaarddictaat maken
#de Lamnda-functie doorgeven als argument voor defaultdict default
my_dict =defaultdict(lambda:"De sleutel is niet gedefinieerd")
#definiëren van de sleutels en waarden
my_dict[1]="Hallo"
my_dict[2]="Welkom"
my_dict[3]="LinuxHint"
#toegang tot de waarden met behulp van toetsen
print(mijn_dictaat[1])
print(mijn_dictaat[2])
print(mijn_dictaat[3])
#toegang tot de ontbrekende of niet gedefinieerde sleutel
print(mijn_dictaat[4])

Het defaultdict roept de default_factory aan om de standaardwaarde op te geven, maar de functie __missing()__ geeft de standaardwaarde. De functie __missing()__ is een ingebouwde functie in Python die de parameter default_factory als argument neemt. Als de parameter default_factory niet is gedefinieerd, genereert de functie __missing()__ de fout "KeyError".

Hier gebruiken we de functie __missing()__ in ons Python-script.

#importeer het standaarddict uit de incassomodule
uit collecties import defaultdict
#defining van een functie om de standaardwaarde terug te geven
def mijn_func():
print("De sleutel is niet gedefinieerd")
#een standaarddictaat maken
#passing the my_func() als argument voor defaultdict
mijn_dict = standaarddict (mijn_func)
#definiëren van de sleutels en waarden
my_dict[1]="LinuxHint"
#toegang tot de waarden met behulp van toetsen
print(mijn_dictaat[1])
#toegang tot de ontbrekende of niet gedefinieerde sleutel
mijn_dictaat.__ontbrekend__(2)

Uitgang:

De klassen list en int kunnen ook worden gebruikt als default_factory parameters met defaultdict.

Lijst als default_factory Parameter:

Het standaarddict wordt gemaakt met de lijstwaarden wanneer de lijstklasse een parameter default_factory wordt doorgegeven.

#importeer het standaarddict uit de incassomodule
uit collecties import defaultdict
# een standaarddictaat definiëren
# lijstklasse doorgeven als default_factory
my_dict = standaarddict(lijst)
voor i in bereik (7):
mijn_dictaat[i].toevoegen (i)
#afdrukken van de waarden
print(mijn_dictaat)

Uitgang:

De uitvoer toont de waarden in de lijst. Zoals u kunt zien, is er een standaarddictaat gemaakt dat de sleutel en waarden bevat.

Gehele getallen als default_factory Parameter

Als we de klasse int doorgeven als parameter default_factory, kunnen we een defaultdict maken dat alleen gehele getallen bevat. We zullen een lijst met gehele getallen maken en deze vervolgens opslaan in de standaarddict.

#importeer het standaarddict uit de incassomodule
uit collecties import defaultdict
# een standaarddictaat definiëren
# int class doorgeven als default_factory
mijn_dict = standaarddict(int)
#een lijst met gehele getallen maken
mijn_lijst=[1,2,3]
voor ik in mijn_lijst:
mijn_dict[i]+=1
#afdrukken van de waarden
print(mijn_dictaat)

Uitgang:

In de gegeven uitvoer zijn de gehele waarden voor de dubbele punt (:) sleutels, terwijl de gehele waarden na de dubbele punt waarden zijn.

Conclusie

De dafualtdict is een woordenboekachtige klasse die aanwezig is in de collecties-module. Het werkt als een Python-woordenboek, maar roept geen "KeyError" op wanneer een sleutel niet wordt gevonden. Dit artikel legt het wanbetalingsbesluit in detail uit met verschillende voorbeelden.

Met WinMouse kunt u de beweging van de muisaanwijzer op Windows-pc aanpassen en verbeteren
Als u de standaardfuncties van uw muisaanwijzer wilt verbeteren, gebruik dan freeware WinMuis. Het voegt meer functies toe om u te helpen het meeste u...
Linkermuisknop werkt niet op Windows 10
Als u een speciale muis gebruikt met uw laptop of desktopcomputer, maar de linkermuisknop werkt niet not op Windows 10/8/7 om wat voor reden dan ook, ...
Cursor springt of beweegt willekeurig tijdens het typen in Windows 10
Als u merkt dat uw muiscursor vanzelf springt of beweegt, automatisch, willekeurig tijdens het typen op een Windows-laptop of -computer, dan kunnen en...