Dicționar Python (cu exemple)

În acest tutorial, veți afla totul despre dicționarele Python; modul în care sunt create, accesând, adăugând, eliminând elemente din ele și diverse metode încorporate.

Video: Dicționare Python pentru a stoca perechi cheie / valoare

Dicționarul Python este o colecție neordonată de articole. Fiecare articol al unui dicționar are o key/valuepereche.

Dicționarele sunt optimizate pentru a prelua valori atunci când cheia este cunoscută.

Crearea dicționarului Python

Crearea unui dicționar este la fel de simplă ca și plasarea articolelor în paranteze ()separate, prin virgule.

Un articol are un keyși un corespondent valuecare este exprimat ca o pereche ( cheie: valoare ).

În timp ce valorile pot fi de orice tip de date și se pot repeta, tastele trebuie să fie de tip imuabil (șir, număr sau tuplu cu elemente imuabile) și trebuie să fie unice.

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

După cum puteți vedea de mai sus, putem crea și un dicționar folosind funcția încorporată dict().

Accesarea elementelor din dicționar

În timp ce indexarea este utilizată cu alte tipuri de date pentru a accesa valorile, se utilizează un dicționar keys. Cheile pot fi utilizate fie în paranteze pătrate, ()fie cu get()metoda.

Dacă folosim parantezele pătrate (), KeyErroreste ridicat în cazul în care nu se găsește o cheie în dicționar. Pe de altă parte, get()metoda revine Nonedacă cheia nu este găsită.

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

Ieșire

 Jack 26 None Traceback (ultimul apel cel mai recent): fișier "", linia 15, tipărit (my_dict ('address')) KeyError: 'address'

Modificarea și adăugarea elementelor din dicționar

Dicționarele sunt modificabile. Putem adăuga articole noi sau putem modifica valoarea articolelor existente folosind un operator de atribuire.

Dacă cheia este deja prezentă, valoarea actualizată se actualizează. În cazul în care cheia nu este prezentă, o nouă pereche ( cheie: valoare ) este adăugată la dicționar.

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

Ieșire

 ('nume': 'Jack', 'vârstă': 27) ('nume': 'Jack', 'vârstă': 27, 'adresă': 'Downtown')

Eliminarea elementelor din dicționar

Putem elimina un anumit element dintr-un dicționar folosind pop()metoda. Această metodă elimină un articol cu ​​cele furnizate keyși returnează fișierul value.

popitem()Metoda poate fi folosită pentru a elimina și a reveni un arbitrar (key, value)pereche element din dicționar. Toate articolele pot fi eliminate simultan, folosind clear()metoda.

De asemenea, putem folosi delcuvântul cheie pentru a elimina elemente individuale sau întregul dicționar în sine.

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

Ieșire

 16 (1: 1, 2: 4, 3: 9, 5: 25) (5, 25) (1: 1, 2: 4, 3: 9) () Traceback (ultimul apel ultim): Fișierul "", linia 30, în tipar (pătrate) NameError: numele „pătrate” nu este definit

Metode de dicționar Python

Metodele disponibile cu un dicționar sunt tabelate mai jos. Unele dintre ele au fost deja utilizate în exemplele de mai sus.

Metodă Descriere
clar() Elimină toate articolele din dicționar.
copie() Returnează o copie superficială a dicționarului.
fromkeys (seq (, v)) Returnează un dicționar nou cu chei din sec și valoare egală cu v (implicit la None).
obține (cheie (, d)) Returnează valoarea cheii. Dacă cheia nu există, returnează d (implicit la None).
articole () Returnează un obiect nou al articolelor dicționarului în format (cheie, valoare).
chei () Returnează un nou obiect al cheilor dicționarului.
pop (tastă (, d)) Elimină elementul cu cheia și îi returnează valoarea sau d dacă cheia nu este găsită. Dacă d nu este furnizat și cheia nu este găsită, aceasta crește KeyError.
popitem () Elimină și returnează un element arbitrar ( cheie, valoare ). Se ridică KeyErrordacă dicționarul este gol.
setdefault (cheie (, d)) Returnează valoarea corespunzătoare dacă cheia se află în dicționar. Dacă nu, introduceți cheia cu o valoare d și returnează d (implicit la None).
actualizare ((altele)) Actualizează dicționarul cu perechile cheie / valoare din altele, suprascriind cheile existente.
valori () Returnează un nou obiect al valorilor dicționarului

Iată câteva exemple de cazuri de utilizare a acestor metode.

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

Ieșire

 („Matematică”: 0, „Engleză”: 0, „Știință”: 0) („Matematică”, 0) („Engleză”, 0) („Știință”, 0) („Engleză”, „Matematică”, „ Ştiinţă')

Python Dictionary Comprehension

Înțelegerea dicționarului este un mod elegant și concis de a crea un dicționar nou dintr-un iterabil în Python.

Înțelegerea dicționarului constă dintr-o pereche de expresii ( cheie: valoare ) urmată de o forafirmație în interiorul acoladelor ().

Iată un exemplu pentru a crea un dicționar cu fiecare element fiind o pereche de un număr și pătratul său.

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

Ieșire

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

Acest cod este echivalent cu

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

Ieșire

 (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

Built-in funcții cum ar fi all(), any(), len(), cmp(), sorted(), etc sunt utilizate în mod obișnuit cu dicționare pentru a efectua diferite sarcini.

Funcţie Descriere
toate() Reveniți Truedacă toate tastele dicționarului sunt True (sau dacă dicționarul este gol).
orice() Reveniți Truedacă orice cheie a dicționarului este adevărată. Dacă dicționarul este gol, reveniți False.
len () Returnează lungimea (numărul de articole) din dicționar.
cmp () Compară elemente din două dicționare. (Nu este disponibil în Python 3)
sortat () Returnează o nouă listă sortată de chei din dicționar.

Iată câteva exemple care utilizează funcții încorporate pentru a lucra cu un dicționar.

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

Ieșire

 Fals Adevărat 6 (0, 1, 3, 5, 7, 9)

Articole interesante...