Geekflare wordt ondersteund door ons publiek. We kunnen affiliate commissies verdienen met het kopen van links op deze site.
In Ontwikkeling Laatst bijgewerkt: 20 september 2023
Deel op:
Invicti beveiligingsscanner voor webtoepassingen - de enige oplossing die automatische verificatie van kwetsbaarheden levert met Proof-Based Scanning™.

Wilt u leren werken met Python woordenboeken? Deze handleiding behandelt Python woordenboekmethoden om Python woordenboeken te lezen, te wijzigen en andere veelvoorkomende bewerkingen uit te voeren.

We zullen beginnen met de basisprincipes van Python-woordenboeken en vervolgens een voorbeeldwoordenboek maken en het wijzigen met behulp van Python-woordenboekmethoden.

Laten we beginnen...

Een overzicht van Python woordenboeken

Woordenboeken zijn ingebouwde gegevensstructuren in Python. Hiermee kunt u items opslaan in sleutel-waardeparen-definiëren van een associatie of mapping tussen de sleutels en waarden.

De sleutels in een woordenboek moeten uniek zijn (zodat ze hashable). U kunt de sleutel gebruiken om de waarde op te zoeken of ingebouwde methodes gebruiken (u zult ze binnenkort leren).

Wanneer u een Python woordenboek maakt, kunt u alle sleutelwaardeparen initialiseren of een leeg woordenboek initialiseren en vervolgens de sleutelwaardeparen toevoegen.

>>> dict1 = {'language':'Python','like':True}
>>> type(dict1)
<class 'dict'>

# or we can do the following:

>>> dict1 = {}
>>> dict1['language']='Python'
>>> dict1['like']=True

Python woordenboekmethoden voor veelvoorkomende bewerkingen

Opmerking: Om de codevoorbeelden te kunnen volgen, moet Python 3.7 of een latere versie geïnstalleerd zijn.

U kunt meewerken in een Python REPL. Of volg mee in Geekflare's online Python editor.

>>> person = {'name':'Alice',
...           'city':'Portland',
...           'interest':'Programming',
...           'profession':'Developer'
...           }

Nu we een Python woordenboek hebben geïnitialiseerd, gaan we de verschillende woordenboekmethodes bekijken.

Verkrijg de woordenboeksleutels met keys()

Een van de gebruikelijke handelingen bij het werken met een Python woordenboek is toegang krijgen tot alle sleutels, waarden en sleutel-waardeparen. Om de sleutels van een woordenboek te krijgen, kunt u de optie keys() methode zoals afgebeeld:

>>> person.keys()
dict_keys(['name', 'city', 'interest', 'profession'])

Verkrijg de woordenboekwaarden met values()

De values() methode retourneert alle waarden en is handig wanneer u deze waarden verder wilt verwerken.

Laten we alle waarden in de person woordenboek:

>>> person.values()
dict_values(['Alice', 'Portland', 'Programming', 'Developer'])

Key-Value-paren ophalen met items()

 De items() methode retourneert een lijst van tupels met sleutelwaarden. Daarom is het aanroepen van deze methode op de person dictionary geeft een lijst van sleutel-waarde-tupels terug:

>>> person.items()
dict_items([('name', 'Alice'), ('city', 'Portland'), ('interest', 'Programming'), 
           ('profession', 'Developer')])

Een ondiepe kopie maken met copy()

python-woordenboek-methodes-1

De copy() methode retourneert een ondiepe kopie van een Python woordenboek.

>>> person_cpy = person.copy()

Hier, person_cpy is een ondiepe kopie van de person woordenboek. Laten we deze kopie aanpassen door de sleutel "naam" te updaten naar "Bob".

>>> person_cpy['name'] = 'Bob'
>>> person_cpy

Als u nu de inhoud van het woordenboek bekijkt, kunt u zien dat de 'naam' is bijgewerkt tot 'Bob'.

{
 'name': 'Bob', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer'
}

De oorspronkelijke person woordenboek is niet gewijzigd.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer'
}

Standaardwaarden instellen met setdefault()

Wanneer u met Python woordenboeken werkt, komt u vaak het volgende tegen KeyError uitzondering als de sleutel niet aanwezig is in het woordenboek. Hier is een voorbeeld wanneer we de sleutel "age" proberen te openen:

>>> person['age']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age'

U kunt dergelijke fouten vermijden door de ingebouwde methoden te gebruiken setdefault() en get() methoden in plaats van toegang te krijgen tot de waarde zoals hierboven.

De setdefault(key) methode retourneert dict['key'] als de sleutel aanwezig is in de dict.

>>> person.setdefault('name')
'Alice'

Als de sleutel niet aanwezig is, voegt het de sleutel toe aan het woordenboek met de standaardwaarde van None.

>>> person.setdefault('address')
>>> person

Hier is de "adres"-sleutel niet aanwezig in de person woordenboek. Maar we zien dat het is toegevoegd met de standaardwaarde van None.

{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': None 
}

We kunnen nu de "address" toets op een adres instellen:

>>> person['address'] = "10, xyz street"
>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street' 
}

U kunt de waarde ook opgeven in de methodeaanroep, zoals weergegeven:

>>> person.setdefault('country','USA')
'USA'
>>> person

Aangezien de "land" sleutel oorspronkelijk niet aanwezig is in de person woordenboek, zien we dat het is toegevoegd met 'USA' als waarde.

{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Een specifieke waarde krijgen met get()

De get() methode retourneert de waarde die overeenkomt met de sleutel. De methode naar keuze neemt een andere standaardwaarde die wordt geretourneerd als de sleutel niet gevonden in het woordenboek.

Wanneer we de waarde van de sleutel "naam" proberen te openen, krijgen we "Alice" omdat de sleutel aanwezig is in person:

>>> person.get('name')
'Alice'

De person woordenboek heeft geen sleutel "gpa". Dus als we de waarde ervan proberen op te vragen, krijgen we niets in de Python REPL. Als u de waarde echter afdrukt, krijgt u None.

>>> person.get('gpa')
>>> print(person.get('gpa'))
None

Maar als u de optionele standaardwaarde opgeeft, krijgen we die waarde in plaats van None.

>>> person.get('gpa','not found')
'not found'

De get() methode voegt de "gpa"-sleutel niet toe aan het woordenboek.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Setdefault() vs. get() begrijpen

Hoewel zowel de setdefault() en get() methoden kunnen worden gebruikt om KeyError af te handelen, laten we de verschillen samenvatten van wat we hebben geleerd:

  • dict.setdefault(key,val) voegt de key met val als standaardwaarde. Als val niet is opgegeven, wordt de key wordt toegevoegd met de standaardwaarde van None.
  • dict.get(key,val) retourneert de waarde die overeenkomt met de sleutel uit het Python woordenboek. Als de key niet aanwezig is, wordt het volgende geretourneerd val (indien aanwezig) of None-maar voegt niet toe de key naar het woordenboek.

U kunt ook standaarddict in Python om KeyErrors beter af te handelen.

De inhoud van woordenboeken bijwerken met update()

U kunt een bestaand Python woordenboek bijwerken met sleutelwaardeparen uit een ander woordenboek. U kunt ook de inhoud van een Python iterable bijwerken met de optie update() methode.

Laten we een more_details woordenboek. Vervolgens werken we de person woordenboek met inhoud van de more_details woordenboek:

>>> more_details = {'hobby':'singing', 'likes':'sweets'}
>>> person.update(more_details)

In de onderstaande uitvoer zien we dat de "hobby"- en "vind ik leuk"-sleutels zijn toegevoegd aan de person woordenboek.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA', 
 'hobby': 'singing', 
 'likes': 'sweets'
}

Verwijder het laatst toegevoegde item met popitem()

python-woordenboek-methodes-2

De popitem() woordenboekmethode kan gebruikt worden om het laatst toegevoegde sleutelwaardepaar te verwijderen.

>>> person.popitem()
('likes', 'sweets')

Zoals u ziet, is het aanroepen van de popitem() methode op de personendictionary retourneert het ('likes','sweets') sleutelwaardepaar - het laatst toegevoegde item in de dictionary.

Het verwijdert ook het key-value paar. U kunt dit bevestigen door de inhoud van het woordenboek te bekijken:

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA', 
 'hobby': 'singing'
}

Een item uit een woordenboek verwijderen met pop()

We weten dat de popitem() Met de methode dictionary wordt het laatste sleutelwaardepaar in een Python woordenboek verwijderd en teruggegeven. Soms moeten we echter ook andere items verwijderen dan het laatst toegevoegde sleutelwaardepaar.

Hiervoor kunnen we de Python woordenboekmethode gebruiken pop(): met behulp van .pop(key) op het woordenboek retourneert de waarde die overeenkomt met de key en verwijdert ook het sleutelwaardepaar uit het woordenboek.

Hier is een voorbeeld:

>>> person.pop('hobby')
'singing'

Als we het item dat overeenkomt met de sleutel 'hobby' verwijderen, zien we dat het niet langer aanwezig is in het woordenboek.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Als we een sleutel invoeren die niet bestaat, lopen we tegen het volgende aan KeyError uitzondering, zoals afgebeeld:

>>> person.pop('age')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age'

Hier lopen we tegen een KeyError Uitzondering omdat de sleutel "leeftijd" niet aanwezig is in het personenwoordenboek.

In tegenstelling tot de lijst pop() methode die standaard het laatste item verwijdert, het woordenboek pop() methode vereist een sleutel. Als u geen sleutel opgeeft in de methode, krijgen we fouten.

>>> person.pop()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: pop expected at least 1 argument, got 0

Alle items uit het woordenboek verwijderen met clear()

Het woordenboek pop() en popitem() Methoden verwijderen één key-value paar per keer. Als u alle items in een woordenboek wilt verwijderen, kunt u de methode clear() methode.

>>> person.clear()
>>> person
{}

Zoals u ziet, is het aanroepen van de clear() methode op de person woordenboek verwijdert alle sleutelwaardeparen en de person woordenboek is nu leeg.

Samenvatting van Python woordenboekmethoden

python-woordenboek-methodes-3

Hier volgt een kort overzicht van de Python woordenboekmethoden die we hebben geleerd.

MethodeSyntaxBeschrijving
keys()dict1.keys()Geeft de sleutels terug van dict1
values()dict1.values()Geeft de waarden van dict1
items()dict1.items()Retourneert een lijst van alle sleutelwaardeparen in dict1
copy()dict1.copy()Geeft een ondiepe kopie van dict1
setdefault()dict1.setdefault(key, default_value)- Toevoegingen key met de optionele default_value als de sleutel tot dict1 (indien niet opgegeven, is de standaardwaarde None)
- Retouren dict1[key] als de key is al aanwezig
get()dict1.get(key,default_value)- Retouren dict1[key] als de sleutel aanwezig is in dict1Anders wordt de default_value
- Als key is niet aanwezig in dict1 en default_value niet is opgegeven, retourneert None
update()dict1.update(iterable1)Updates dict1 met sleutelwaardeparen van iterable1
popitem()dict1.popitem()Verwijdert en retourneert het laatste sleutelwaardepaar uit dict1
pop()dict1.pop(key)- Verwijdert en retourneert de waarde die overeenkomt met de key: dict1[key]
- Verhoogt een KeyError als de sleutel niet aanwezig is in dict1
clear()dict1.clear()Verwijdert alle items van dict1

Conclusie

U hebt geleerd hoe u veelgebruikte methodes kunt gebruiken om lees-, update- en verwijderbewerkingen uit te voeren op Python woordenboeken. Daarnaast hebt u ook geleerd hoe de get() en de setdefault() methoden kunnen worden gebruikt om KeyError uitzonderingen door respectievelijk een standaardwaarde terug te geven en een item met een standaardwaarde toe te voegen aan het Python woordenboek. U kunt ook een Python woordenboek sorteren op sleutel of op waarde.

Bekijk vervolgens de lijst met nuttige Python lijstmethoden. Veel plezier met coderen!

  • Bala Priya C
    Auteur
Met dank aan onze sponsors
Meer geweldige lezingen over ontwikkeling
Energie voor uw bedrijf
Enkele van de tools en services om je bedrijf te helpen groeien.
  • Invicti maakt gebruik van Proof-Based Scanning™ om de geïdentificeerde kwetsbaarheden automatisch te verifiëren en binnen enkele uren bruikbare resultaten te genereren.
    Probeer Invicti
  • Web scraping, residentiële proxy, proxy manager, web unlocker, zoekmachine crawler en alles wat je nodig hebt om webgegevens te verzamelen.
    Probeer Brightdata
  • Monday.com is een alles-in-één werk OS om je te helpen bij het beheren van projecten, taken, werk, verkoop, CRM, operaties, workflows en meer.
    Probeer maandag
  • Intruder is een online kwetsbaarhedenscanner die zwakke plekken in de cyberbeveiliging van uw infrastructuur vindt om kostbare datalekken te voorkomen.
    Probeer indringer