Î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/value
pereche.
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 value
care 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 ()
, KeyError
este ridicat în cazul în care nu se găsește o cheie în dicționar. Pe de altă parte, get()
metoda revine None
dacă 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 del
cuvâ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ă KeyError dacă 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 for
afirmaț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 True dacă toate tastele dicționarului sunt True (sau dacă dicționarul este gol). |
orice() | Reveniți True dacă 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)