Slovník Python (s príkladmi)

V tomto výučbe sa dozviete všetko o slovníkoch Python; ako sú vytvárané, prístup, pridávanie, odstraňovanie prvkov z nich a rôzne vstavané metódy.

Video: Slovníky Pythonu na ukladanie párov kľúč / hodnota

Slovník Python je neusporiadaná zbierka položiek. Každá položka slovníka má key/valuepár.

Slovníky sú optimalizované na načítanie hodnôt, keď je kľúč známy.

Vytváranie slovníka Python

Vytvorenie slovníka je také jednoduché ako vkladanie položiek do zložených zátvoriek ()oddelených čiarkami.

Položka má a keya korešpondenciu, valuektorá je vyjadrená ako pár ( kľúč: hodnota ).

Aj keď hodnoty môžu byť ľubovoľného typu údajov a môžu sa opakovať, kľúče musia byť nemenného typu (reťazec, číslo alebo n-tica s nemennými prvkami) a musia byť jedinečné.

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

Ako vidíte zhora, slovník môžeme vytvoriť aj pomocou vstavanej dict()funkcie.

Prístup k prvkom zo slovníka

Zatiaľ čo sa indexovanie používa s inými typmi údajov na prístup k hodnotám, používa sa slovník keys. Kľúče je možné použiť buď vo vnútri hranatých zátvoriek ()alebo pomocou tejto get()metódy.

Ak použijeme hranaté zátvorky (), znak KeyErrorsa zdvihne, ak sa nenájde kľúč v slovníku. Na druhej strane sa get()metóda vráti, Noneak sa kľúč nenájde.

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

Výkon

 Jack 26 Žiadny Traceback (posledný posledný hovor): Súbor "", riadok 15, v tlačenej podobe (my_dict ('address')) KeyError: 'address'

Zmena a pridanie prvkov slovníka

Slovníky sú premenlivé. Pomocou operátora priradenia môžeme pridať nové položky alebo zmeniť hodnotu existujúcich položiek.

Ak je kľúč už prítomný, aktualizuje sa existujúca hodnota. Ak kľúč nie je k dispozícii, do slovníka sa pridá nový pár ( kľúč: hodnota ).

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

Výkon

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

Odstraňujú sa prvky zo slovníka

Pomocou tejto pop()metódy môžeme odstrániť konkrétnu položku v slovníku . Táto metóda odstráni položku s poskytnutým keyúdajom a vráti value.

Túto popitem()metódu je možné použiť na odstránenie a vrátenie ľubovoľného (key, value)páru položiek zo slovníka. Týmto spôsobom je možné odstrániť všetky položky naraz clear().

delKľúčové slovo môžeme použiť aj na odstránenie jednotlivých položiek alebo celého samotného slovníka.

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

Výkon

 16 (1: 1, 2: 4, 3: 9, 5:25) (5, 25) (1: 1, 2: 4, 3: 9) () Traceback (posledný hovor naposledy): Súbor „“, riadok 30, v tlači (štvorce) Chyba chyby: názov „štvorce“ nie je definovaný

Metódy slovníka Python

Metódy, ktoré sú k dispozícii so slovníkom, sú uvedené v tabuľke nižšie. Niektoré z nich už boli použité vo vyššie uvedených príkladoch.

Metóda Popis
jasný() Odstráni všetky položky zo slovníka.
copy () Vráti plytkú kópiu slovníka.
fromkeys (seq (, v)) Vráti nový slovník s kľúčmi od seq a hodnotou rovnou v (predvolené nastavenie je None).
get (kľúč (, d)) Vráti hodnotu kľúča. Ak kľúč neexistuje, vráti d (predvolené nastavenie None).
položky () Vrátiť nový objekt položiek slovníka vo formáte (kľúč, hodnota).
klávesy () Vráti nový objekt klávesov slovníka.
pop (klávesa (, d)) Odstráni položku pomocou kľúča a vráti jeho hodnotu alebo d, ak kľúč nenájdete. Ak d nie je uvedené a kľúč sa nenájde, zdvihne sa KeyError.
popitem () Odstráni a vráti ľubovoľnú položku ( kľúč, hodnotu ). Vyvolá sa, KeyErrorak je slovník prázdny.
setdefault (klávesa (, d)) Vráti zodpovedajúcu hodnotu, ak je kľúč v slovníku. Ak nie, vloží kľúč s hodnotou d a vráti d (predvolené nastavenie None).
aktualizovať ((ďalšie)) Aktualizuje slovník dvojicami kľúč / hodnota z iných, prepisuje existujúce kľúče.
hodnoty () Vráti nový objekt hodnôt slovníka

Tu je niekoľko príkladov použitia týchto metód.

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

Výkon

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

Pochopenie slovníka Python

Porozumenie slovníka je elegantný a výstižný spôsob, ako vytvoriť nový slovník z iterovateľného súboru v jazyku Python.

Porozumenie slovníka pozostáva z dvojice výrazov ( kľúč: hodnota ), za ktorou nasleduje forvyhlásenie vo vnútri zložených zátvoriek ().

Tu je príklad na vytvorenie slovníka, kde každá položka je dvojica čísla a jeho štvorec.

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

Výkon

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

Tento kód je ekvivalentný s

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

Výkon

 (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

Vstavané funkcie, ako all(), any(), len(), cmp(), sorted(), atď. Sú bežne používané s slovníkmi plniť rôzne úlohy.

Funkcia Popis
všetko () Vráťte sa, Trueak sú všetky klávesy slovníka pravdivé (alebo ak je slovník prázdny).
akýkoľvek() Vrátiť, Trueak je ktorákoľvek klávesa zo slovníka pravdivá. Ak je slovník prázdny, vráťte sa False.
len () Vráti dĺžku (počet položiek) v slovníku.
cmp () Porovnáva položky dvoch slovníkov. (Nie je k dispozícii v Pythone 3)
zoradené () Vrátiť nový zoradený zoznam klávesov v slovníku.

Tu je niekoľko príkladov, ktoré používajú vstavané funkcie na prácu so slovníkom.

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

Výkon

 False True 6 (0, 1, 3, 5, 7, 9)

Zaujímavé články...