Python Dictionary (med eksempler)

I denne vejledning lærer du alt om Python-ordbøger; hvordan de oprettes, få adgang til, tilføje, fjerne elementer fra dem og forskellige indbyggede metoder.

Video: Python Dictionaries to Store key / value Pairs

Python-ordbog er en ikke-ordnet samling af genstande. Hvert emne i en ordbog har et key/valuepar.

Ordbøger er optimeret til at hente værdier, når nøglen er kendt.

Oprettelse af Python Dictionary

Oprettelse af en ordbog er lige så simpelt som at placere elementer i krøllede parenteser ()adskilt af kommaer.

Et element har et keyog et tilsvarende value, der udtrykkes som et par ( nøgle: værdi ).

Mens værdierne kan være af en hvilken som helst datatype og kan gentages, skal nøglerne være af uforanderlig type (streng, nummer eller tuple med uforanderlige elementer) og skal være unikke.

 # 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')))

Som du kan se ovenfra, kan vi også oprette en ordbog ved hjælp af den indbyggede dict()funktion.

Adgang til elementer fra ordbogen

Mens indeksering bruges med andre datatyper for at få adgang til værdier, bruger en ordbog keys. Tasterne kan bruges enten inden for firkantede parenteser ()eller med get()metoden.

Hvis vi bruger de firkantede parenteser (), KeyErrorhæves, hvis der ikke findes en nøgle i ordbogen. På den anden side get()vender metoden tilbage, Nonehvis nøglen ikke findes.

 # 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'))

Produktion

 Jack 26 Ingen sporbarhed (seneste opkald sidst): Fil "", linje 15, i tryk (my_dict ('adresse')) KeyError: 'adresse'

Ændring og tilføjelse af ordbogselementer

Ordbøger kan ændres. Vi kan tilføje nye varer eller ændre værdien af ​​eksisterende varer ved hjælp af en opgaveoperatør.

Hvis nøglen allerede er til stede, opdateres den eksisterende værdi. Hvis nøglen ikke er til stede, tilføjes et nyt ( nøgle: værdi ) par til ordbogen.

 # 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)

Produktion

 ('name': 'Jack', 'age': 27) ('name': 'Jack', 'age': 27, 'address': 'Downtown')

Fjernelse af elementer fra ordbogen

Vi kan fjerne et bestemt element i en ordbog ved hjælp af pop()metoden. Denne metode fjerner et element med det medfølgende keyog returnerer value.

Den popitem()Fremgangsmåden kan anvendes til at fjerne og returnere en vilkårlig (key, value)element par fra ordbogen. Alle emner kan fjernes på én gang ved hjælp af clear()metoden.

Vi kan også bruge delnøgleordet til at fjerne enkelte emner eller hele selve ordbogen.

 # 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)

Produktion

 16 (1: 1, 2: 4, 3: 9, 5: 25) (5, 25) (1: 1, 2: 4, 3: 9) () Traceback (seneste opkald sidst): Fil "", linje 30, med tryk (firkanter) NameError: navn 'firkanter' er ikke defineret

Python Dictionary Methods

Metoder, der er tilgængelige med en ordbog, er anført nedenfor. Nogle af dem er allerede blevet brugt i ovenstående eksempler.

Metode Beskrivelse
klar() Fjerner alle emner fra ordbogen.
kopi() Returnerer en lav kopi af ordbogen.
fromkeys (seq (, v)) Returnerer en ny ordbog med nøgler fra seq og værdi lig med v (standard None).
få (nøgle (, d)) Returnerer værdien af ​​nøglen. Hvis nøglen ikke findes, returneres d (er som standard None).
varer () Returner et nyt objekt med ordbogens emner i (nøgle, værdi) format.
nøgler () Returnerer et nyt objekt med ordbogens taster.
pop (tast (, d)) Fjerner elementet med nøglen og returnerer dens værdi eller d, hvis nøglen ikke findes. Hvis d ikke er angivet, og nøglen ikke findes, hæves den KeyError.
popitem () Fjerner og returnerer en vilkårlig vare ( nøgle, værdi ). Stiger, KeyErrorhvis ordbogen er tom.
setdefault (nøgle (, d)) Returnerer den tilsvarende værdi, hvis nøglen er i ordbogen. Hvis ikke, indsætter du nøglen med værdien d og returnerer d (standard None).
opdatering ((andet)) Opdaterer ordbogen med nøgle / værdipar fra andre overskrivende eksisterende nøgler.
værdier () Returnerer et nyt objekt med ordbogens værdier

Her er et par eksempler på anvendelse af disse metoder.

 # 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())))

Produktion

 ('Matematik': 0, 'Engelsk': 0, 'Videnskab': 0) ('Matematik', 0) ('Engelsk', 0) ('Videnskab', 0) ('Engelsk', 'Matematik', ' Videnskab')

Python Dictionary Comprehension

Ordbog forståelse er en elegant og kortfattet måde at oprette en ny ordbog fra en iterabel i Python.

Ordbogsforståelse består af et udtrykspar ( nøgle: værdi ) efterfulgt af en forsætning inde i krøllede seler ().

Her er et eksempel på at lave en ordbog, hvor hvert element er et par af et tal og dets firkant.

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

Produktion

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

Denne kode svarer til

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

Produktion

 (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

Indbyggede funktioner gerne all(), any(), len(), cmp(), sorted()etc. er almindeligt anvendt med ordbøger til at udføre forskellige opgaver.

Fungere Beskrivelse
alle() Returner, Truehvis alle nøgler i ordbogen er sande (eller hvis ordbogen er tom).
nogen() Returner, Truehvis en hvilken som helst nøgle til ordbogen er sand. Hvis ordbogen er tom, skal du vende tilbage False.
len () Returner længden (antallet af emner) i ordbogen.
cmp () Sammenligner emner i to ordbøger. (Ikke tilgængelig i Python 3)
sorteret () Returner en ny sorteret liste med nøgler i ordbogen.

Her er nogle eksempler, der bruger indbyggede funktioner til at arbejde med en ordbog.

 # 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))

Produktion

 Falsk sand 6 (0, 1, 3, 5, 7, 9)

Interessante artikler...