Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

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

  1. Python-gegevenstypen
  2. Python-operators
  3. Python pass-instructie
  4. Python-functieargumenten
  5. Python-iterators
  6. Python-sluitingen
  7. Python datetime
  8. Python - Overzicht
  9. Python - Cijfers
  10. Python - Strings
  11. Python - Tupels