Python-woordenboek
Python-woordenboek
In deze tutorial leer je alles over Python-woordenboeken; hoe ze worden gemaakt, toegang krijgen tot, toevoegen en 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/value
paar.
Woordenboeken zijn geoptimaliseerd om waarden op te halen wanneer de sleutel bekend is.
Python-woordenboek maken
Het maken van een woordenboek is net zo eenvoudig als het plaatsen van items tussen accolades {}
gescheiden door komma's.
Een item heeft een key
en een bijbehorende value
dat wordt uitgedrukt als een paar (sleutel:waarde ).
Hoewel de waarden van elk gegevenstype kunnen zijn en kunnen worden herhaald, moeten sleutels van het onveranderlijke type zijn (tekenreeks, nummer of tuple met onveranderlijke elementen) en moeten ze 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 je 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 tussen vierkante haken worden gebruikt []
of met de get()
methode.
Als we de vierkante haken []
. gebruiken , KeyError
wordt weergegeven als een sleutel niet in het woordenboek wordt gevonden. Aan de andere kant, de get()
methode retourneert None
als 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 None Traceback (most recent call last): File "<string>", line 15, in <module> 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 behulp van een toewijzingsoperator.
Als de sleutel al aanwezig is, wordt de bestaande waarde bijgewerkt. Als de sleutel niet aanwezig is, een nieuwe (sleutel:waarde ) paar is toegevoegd aan het woordenboek.
# 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
{'name': 'Jack', 'age': 27} {'name': 'Jack', 'age': 27, 'address': 'Downtown'}
Elementen verwijderen uit woordenboek
We kunnen een bepaald item in een woordenboek verwijderen met behulp van de pop()
methode. Deze methode verwijdert een item met de verstrekte key
en retourneert de value
.
De popitem()
methode kan worden gebruikt om een willekeurige (key, value)
. te verwijderen en terug te sturen itempaar uit het woordenboek. Alle items kunnen in één keer worden verwijderd met behulp van de clear()
methode.
We kunnen ook de del
. gebruiken trefwoord 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 (most recent call last): File "<string>", line 30, in <module> print(squares) NameError: name 'squares' is not defined
Python-woordenboekmethoden
Methoden die beschikbaar zijn met een woordenboek worden hieronder weergegeven. Sommige zijn al gebruikt in de bovenstaande voorbeelden.
Methode | Beschrijving |
---|---|
clear() | Verwijdert alle items uit het woordenboek. |
copy() | Retourneert een oppervlakkige kopie van het woordenboek. |
fromkeys(seq[, v]) | Retourneert een nieuw woordenboek met sleutels van seq en waarde gelijk aan v (standaard None ). |
get(sleutel[,d]) | Retourneert de waarde van de sleutel . Als de toets bestaat niet, retourneert d (standaard None ). |
items() | Retourneer een nieuw object van de items van het woordenboek in (sleutel, waarde) formaat. |
toetsen() | Retourneert een nieuw object van de woordenboeksleutels. |
pop(toets[,d]) | Verwijdert het item met de toets en retourneert de waarde of d if toets is niet gevonden. Als d is niet voorzien en de sleutel wordt niet gevonden, het verhoogt KeyError . |
popitem() | Verwijdert en retourneert een willekeurig item (sleutel, waarde ). Verhoogt KeyError als het woordenboek leeg is. |
setdefault(key[,d]) | Retourneert de corresponderende waarde als de toets staat in het woordenboek. Zo niet, voeg dan de sleutel . in met een waarde van d en retourneert d (standaard None ). |
update([other]) | Werk het woordenboek bij met de sleutel/waarde-paren van other , bestaande sleutels overschrijven. |
waarden() | Retourneert een nieuw object met de waarden van het woordenboek |
Hier zijn een paar voorbeelden van gebruiksscenario's van deze methoden.
# 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())))
Uitvoer
{'Math': 0, 'English': 0, 'Science': 0} ('Math', 0) ('English', 0) ('Science', 0) ['English', 'Math', 'Science']
Python-woordenboekbegrip
Woordenboekbegrip is een elegante en beknopte manier om een nieuw woordenboek te maken van een iterabel in Python.
Woordenboekbegrip bestaat uit een uitdrukkingspaar (sleutel:waarde ) gevolgd door een for
statement tussen accolades {}
.
Hier is een voorbeeld om een woordenboek te maken waarbij elk item een paar is van een getal en zijn vierkant.
# Dictionary Comprehension
squares = {x: x*x for x in range(6)}
print(squares)
Uitvoer
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
Deze code is gelijk aan
squares = {}
for x in range(6):
squares[x] = x*x
print(squares)
Uitvoer
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
Een woordenboekbegrip kan optioneel meer voor of als-zinnen bevatten.
Een optionele if
statement kan items uitfilteren om het nieuwe woordenboek te vormen.
Hier zijn enkele voorbeelden om een woordenboek te maken met alleen oneven items.
# Dictionary Comprehension with if conditional
odd_squares = {x: x*x for x in range(11) if x % 2 == 1}
print(odd_squares)
Uitvoer
{1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
Ga voor meer begrip van woordenboeken naar Python Dictionary Comprehension.
Andere woordenboekbewerkingen
Woordenboek lidmaatschapstest
We kunnen testen of een key
staat in een woordenboek of gebruikt het trefwoord in
. niet . Merk op dat de lidmaatschapstest alleen voor de keys
. is en niet voor de 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)
Uitvoer
True True False
Itereren door een woordenboek
We kunnen elke sleutel in een woordenboek herhalen met een for
lus.
# Iterating through a Dictionary
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
for i in squares:
print(squares[i])
Uitvoer
1 9 25 49 81
Woordenboek ingebouwde functies
Ingebouwde functies zoals all()
, any()
, len()
, cmp()
, sorted()
, enz. worden vaak gebruikt met woordenboeken om verschillende taken uit te voeren.
Functie | Beschrijving |
---|---|
all() | Retour True als alle sleutels van het woordenboek waar zijn (of als het woordenboek leeg is). |
elke() | Retour True als een sleutel van het woordenboek waar is. Als het woordenboek leeg is, retourneert u 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
False True 6 [0, 1, 3, 5, 7, 9]
Python