Dizionario Python (con esempi)

In questo tutorial imparerai tutto sui dizionari Python; come vengono creati, accesso, aggiunta, rimozione di elementi da essi e vari metodi integrati.

Video: dizionari Python per memorizzare coppie chiave / valore

Il dizionario Python è una raccolta di elementi non ordinata. Ogni elemento di un dizionario ha una key/valuecoppia.

I dizionari sono ottimizzati per recuperare i valori quando la chiave è nota.

Creazione del dizionario Python

Creare un dizionario è semplice come inserire elementi all'interno di parentesi graffe ()separate da virgole.

Un elemento ha un keye un corrispondente valueespresso come coppia ( chiave: valore ).

Sebbene i valori possano essere di qualsiasi tipo di dati e possano ripetersi, le chiavi devono essere di tipo immutabile (stringa, numero o tupla con elementi immutabili) e devono essere univoche.

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

Come puoi vedere dall'alto, possiamo anche creare un dizionario utilizzando la dict()funzione incorporata.

Accesso agli elementi dal dizionario

Mentre l'indicizzazione viene utilizzata con altri tipi di dati per accedere ai valori, un dizionario utilizza keys. Le chiavi possono essere utilizzate all'interno di parentesi quadre ()o con il get()metodo.

Se usiamo le parentesi quadre (), KeyErrorviene alzato nel caso in cui una chiave non venga trovata nel dizionario. D'altra parte, il get()metodo restituisce Nonese la chiave non viene trovata.

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

Produzione

 Jack 26 Nessuno Traceback (ultima chiamata più recente): File "", riga 15, in print (my_dict ('address')) KeyError: 'address'

Modifica e aggiunta di elementi del dizionario

I dizionari sono mutabili. Possiamo aggiungere nuovi elementi o modificare il valore degli elementi esistenti utilizzando un operatore di assegnazione.

Se la chiave è già presente, il valore esistente viene aggiornato. Nel caso in cui la chiave non sia presente, una nuova coppia ( chiave: valore ) viene aggiunta al dizionario.

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

Produzione

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

Rimozione di elementi dal dizionario

Possiamo rimuovere un particolare elemento in un dizionario utilizzando il pop()metodo. Questo metodo rimuove un elemento con il fornito keye restituisce il value.

Il popitem()metodo può essere utilizzato per rimuovere e restituire una (key, value)coppia di elementi arbitraria dal dizionario. Tutti gli elementi possono essere rimossi contemporaneamente, utilizzando il clear()metodo.

Possiamo anche utilizzare la delparola chiave per rimuovere singoli elementi o l'intero dizionario stesso.

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

Produzione

 16 (1: 1, 2: 4, 3: 9, 5: 25) (5, 25) (1: 1, 2: 4, 3: 9) () Traceback (chiamata più recente per ultima): File "", riga 30, in print (squares) NameError: il nome "squares" non è definito

Metodi del dizionario Python

I metodi disponibili con un dizionario sono elencati di seguito. Alcuni di essi sono già stati utilizzati negli esempi precedenti.

Metodo Descrizione
chiaro() Rimuove tutti gli elementi dal dizionario.
copia() Restituisce una copia superficiale del dizionario.
fromkeys (seq (, v)) Restituisce un nuovo dizionario con chiavi da seq e valore uguale a v (il valore predefinito è None).
get (key (, d)) Restituisce il valore della chiave. Se la chiave non esiste, restituisce d (il valore predefinito è None).
elementi() Restituisce un nuovo oggetto degli elementi del dizionario in formato (chiave, valore).
chiavi () Restituisce un nuovo oggetto delle chiavi del dizionario.
pop (tasto (, d)) Rimuove l'elemento con la chiave e restituisce il suo valore od se la chiave non viene trovata. Se d non viene fornito e la chiave non viene trovata, viene sollevata KeyError.
popitem () Rimuove e restituisce un elemento arbitrario ( chiave, valore ). Solleva KeyErrorse il dizionario è vuoto.
setdefault (key (, d)) Restituisce il valore corrispondente se la chiave è nel dizionario. In caso contrario, inserisce la chiave con un valore de restituisce d (il valore predefinito è None).
aggiornamento ((altro)) Aggiorna il dizionario con le coppie chiave / valore di altre, sovrascrivendo le chiavi esistenti.
valori() Restituisce un nuovo oggetto dei valori del dizionario

Di seguito sono riportati alcuni esempi di casi d'uso di questi metodi.

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

Produzione

 ('Math': 0, 'English': 0, 'Science': 0) ('Math', 0) ('English', 0) ('Science', 0) ('English', 'Math', " Scienza')

Comprensione del dizionario Python

La comprensione del dizionario è un modo elegante e conciso per creare un nuovo dizionario da un iterabile in Python.

La comprensione del dizionario consiste in una coppia di espressioni ( chiave: valore ) seguita da forun'istruzione all'interno di parentesi graffe ().

Ecco un esempio per creare un dizionario in cui ogni elemento è una coppia di un numero e il suo quadrato.

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

Produzione

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

Questo codice è equivalente a

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

Produzione

 (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 funzioni come all(), any(), len(), cmp(), sorted(), ecc sono comunemente usati con i dizionari per eseguire compiti diversi.

Funzione Descrizione
tutti() Restituisce Truese tutte le chiavi del dizionario sono True (o se il dizionario è vuoto).
qualunque() Restituisce Truese una qualsiasi chiave del dizionario è vera. Se il dizionario è vuoto, restituisci False.
len () Restituisce la lunghezza (il numero di elementi) nel dizionario.
cmp () Confronta gli elementi di due dizionari. (Non disponibile in Python 3)
smistato() Restituisce un nuovo elenco ordinato di chiavi nel dizionario.

Di seguito sono riportati alcuni esempi che utilizzano funzioni incorporate per lavorare con un dizionario.

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

Produzione

 Falso Vero 6 (0, 1, 3, 5, 7, 9)

Articoli interessanti...