Python-woordenboek (met voorbeelden)

In deze tutorial leer je alles over Python-woordenboeken; hoe ze worden gemaakt, toegang krijgen tot, toevoegen, verwijderen van elementen en verschillende ingebouwde methoden.

Video: Python-woordenboeken om sleutel / waarde-paren op te slaan

Python-woordenboek is een ongeordende verzameling items. Elk item van een woordenboek heeft een key/valuepaar.

Woordenboeken zijn geoptimaliseerd om waarden op te halen als de sleutel bekend is.

Python-woordenboek maken

Het maken van een woordenboek is net zo eenvoudig als items tussen accolades plaatsen, ()gescheiden door komma's.

Een item heeft een keyen een corresponderend item valuedat wordt uitgedrukt als een paar ( sleutel: waarde ).

Hoewel de waarden van elk gegevenstype kunnen zijn en kunnen worden herhaald, moeten sleutels van een onveranderlijk type zijn (string, nummer of tuple met onveranderlijke elementen) en uniek zijn.

 # empty dictionary my_dict = () # dictionary with integer keys my_dict = (1: 'apple', 2: 'ball') # dictionary with mixed keys my_dict = ('name': 'John', 1: (2, 4, 3)) # using dict() my_dict = dict((1:'apple', 2:'ball')) # from sequence having each item as a pair my_dict = dict(((1,'apple'), (2,'ball')))

Zoals u hierboven kunt zien, kunnen we ook een woordenboek maken met behulp van de ingebouwde dict()functie.

Toegang tot elementen uit woordenboek

Terwijl indexering wordt gebruikt met andere gegevenstypen om toegang te krijgen tot waarden, gebruikt een woordenboek keys. Toetsen kunnen worden gebruikt tussen vierkante haken ()of met de get()methode.

Als we de vierkante haken gebruiken (), KeyErrorwordt verhoogd als een sleutel niet in het woordenboek wordt gevonden. Aan de andere kant get()keert de methode terug Noneals de sleutel niet wordt gevonden.

 # get vs () for retrieving elements my_dict = ('name': 'Jack', 'age': 26) # Output: Jack print(my_dict('name')) # Output: 26 print(my_dict.get('age')) # Trying to access keys which doesn't exist throws error # Output None print(my_dict.get('address')) # KeyError print(my_dict('address'))

Uitvoer

 Jack 26 Geen Traceback (meest recente oproep laatste): File "", regel 15, in print (my_dict ('address')) KeyError: 'address'

Woordenboekelementen wijzigen en toevoegen

Woordenboeken zijn veranderlijk. We kunnen nieuwe items toevoegen of de waarde van bestaande items wijzigen met een toewijzingsoperator.

Als de sleutel al aanwezig is, wordt de bestaande waarde bijgewerkt. Als de sleutel niet aanwezig is, wordt een nieuw ( sleutel: waarde ) paar aan het woordenboek toegevoegd.

 # Changing and adding Dictionary Elements my_dict = ('name': 'Jack', 'age': 26) # update value my_dict('age') = 27 #Output: ('age': 27, 'name': 'Jack') print(my_dict) # add item my_dict('address') = 'Downtown' # Output: ('address': 'Downtown', 'age': 27, 'name': 'Jack') print(my_dict)

Uitvoer

 ('naam': 'Jack', 'leeftijd': 27) ('naam': 'Jack', 'leeftijd': 27, 'adres': 'Centrum')

Elementen verwijderen uit Dictionary

We kunnen een bepaald item in een woordenboek verwijderen door de pop()methode te gebruiken. Deze methode verwijdert een item met het opgegeven item keyen retourneert de value.

De popitem()methode kan worden gebruikt om een ​​willekeurig (key, value)itempaar uit het woordenboek te verwijderen en terug te sturen . Alle items kunnen in één keer worden verwijderd met behulp van de clear()methode.

We kunnen het deltrefwoord ook gebruiken om afzonderlijke items of het hele woordenboek zelf te verwijderen.

 # Removing elements from a dictionary # create a dictionary squares = (1: 1, 2: 4, 3: 9, 4: 16, 5: 25) # remove a particular item, returns its value # Output: 16 print(squares.pop(4)) # Output: (1: 1, 2: 4, 3: 9, 5: 25) print(squares) # remove an arbitrary item, return (key,value) # Output: (5, 25) print(squares.popitem()) # Output: (1: 1, 2: 4, 3: 9) print(squares) # remove all items squares.clear() # Output: () print(squares) # delete the dictionary itself del squares # Throws Error print(squares)

Uitvoer

 16 (1: 1, 2: 4, 3: 9, 5: 25) (5, 25) (1: 1, 2: 4, 3: 9) () Traceback (meest recente oproep laatste): Bestand "", regel 30, in print (squares) NameError: naam 'squares' is niet gedefinieerd

Python-woordenboekmethoden

De methoden die beschikbaar zijn met een woordenboek, worden hieronder in tabelvorm weergegeven. Sommige zijn al gebruikt in de bovenstaande voorbeelden.

Methode Omschrijving
Doorzichtig() Verwijdert alle items uit het woordenboek.
kopiëren() Retourneert een ondiepe kopie van het woordenboek.
fromkeys (seq (, v)) Retourneert een nieuw woordenboek met sleutels uit seq en waarde gelijk aan v (standaard ingesteld op None).
krijgen (sleutel (, d)) Retourneert de waarde van de sleutel. Als de sleutel niet bestaat, retourneert d (standaard None).
artikelen () Retourneer een nieuw object van de items uit het woordenboek in (key, value) -indeling.
sleutels () Retourneert een nieuw object van de woordenboeksleutels.
pop (key (, d)) Verwijdert het item met de sleutel en retourneert de waarde of d als de sleutel niet wordt gevonden. Als d niet wordt opgegeven en de sleutel wordt niet gevonden, gaat hij omhoog KeyError.
popitem () Verwijdert en retourneert een willekeurig item ( sleutel, waarde ). Gaat omhoog KeyErrorals het woordenboek leeg is.
setdefault (key (, d)) Geeft de overeenkomstige waarde terug als de sleutel in het woordenboek staat. Als dit niet het geval is, voegt u de sleutel met de waarde d in en retourneert d (standaard None).
update ((andere)) Updates the dictionary with the key/value pairs from other, overwriting existing keys.
values() Returns a new object of the dictionary's values

Here are a few example use cases of these methods.

 # Dictionary Methods marks = ().fromkeys(('Math', 'English', 'Science'), 0) # Output: ('English': 0, 'Math': 0, 'Science': 0) print(marks) for item in marks.items(): print(item) # Output: ('English', 'Math', 'Science') print(list(sorted(marks.keys())))

Output

 ('Math': 0, 'English': 0, 'Science': 0) ('Math', 0) ('English', 0) ('Science', 0) ('English', 'Math', 'Science')

Python Dictionary Comprehension

Dictionary comprehension is an elegant and concise way to create a new dictionary from an iterable in Python.

Dictionary comprehension consists of an expression pair (key: value) followed by a for statement inside curly braces ().

Here is an example to make a dictionary with each item being a pair of a number and its square.

 # Dictionary Comprehension squares = (x: x*x for x in range(6)) print(squares)

Output

 (0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25)

This code is equivalent to

 squares = () for x in range(6): squares(x) = x*x print(squares)

Output

 (0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25)

A dictionary comprehension can optionally contain more for or if statements.

An optional if statement can filter out items to form the new dictionary.

Here are some examples to make a dictionary with only odd items.

 # Dictionary Comprehension with if conditional odd_squares = (x: x*x for x in range(11) if x % 2 == 1) print(odd_squares)

Output

 (1: 1, 3: 9, 5: 25, 7: 49, 9: 81)

To learn more dictionary comprehensions, visit Python Dictionary Comprehension.

Other Dictionary Operations

Dictionary Membership Test

We can test if a key is in a dictionary or not using the keyword in. Notice that the membership test is only for the keys and not for the values.

 # Membership Test for Dictionary Keys squares = (1: 1, 3: 9, 5: 25, 7: 49, 9: 81) # Output: True print(1 in squares) # Output: True print(2 not in squares) # membership tests for key only not value # Output: False print(49 in squares)

Output

 True True False

Iterating Through a Dictionary

We can iterate through each key in a dictionary using a for loop.

 # Iterating through a Dictionary squares = (1: 1, 3: 9, 5: 25, 7: 49, 9: 81) for i in squares: print(squares(i))

Output

 1 9 25 49 81

Dictionary Built-in Functions

Ingebouwde functies willen all(), any(), len(), cmp(), sorted(), enz. Worden vaak gebruikt in combinatie met woordenboeken om verschillende taken uit te voeren.

Functie Omschrijving
alle() Keer terug Trueals alle sleutels van het woordenboek Waar zijn (of als het woordenboek leeg is).
ieder() Keer terug Trueals een sleutel van het woordenboek waar is. Ga terug als het woordenboek leeg is False.
len () Retourneer de lengte (het aantal items) in het woordenboek.
cmp () Vergelijkt items van twee woordenboeken. (Niet beschikbaar in Python 3)
gesorteerd () Retourneer een nieuwe gesorteerde lijst met sleutels in het woordenboek.

Hier zijn enkele voorbeelden die ingebouwde functies gebruiken om met een woordenboek te werken.

 # Dictionary Built-in Functions squares = (0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81) # Output: False print(all(squares)) # Output: True print(any(squares)) # Output: 6 print(len(squares)) # Output: (0, 1, 3, 5, 7, 9) print(sorted(squares))

Uitvoer

 Niet waar Waar 6 (0, 1, 3, 5, 7, 9)

Interessante artikelen...