La Comprensione delle liste è un modo pratico e veloce per creare liste in Python in una sola riga di codice. Ci aiuta a scrivere cicli for facili da leggere in una singola riga.
In Python, il dizionario è una struttura di dati per memorizzare dati in modo tale che ogni elemento dei dati memorizzati è associato ad una chiave. La struttura dati del dizionario permette di interrogare i dati usando la chiave in modo molto efficiente.
L’idea della comprensione non è solo unica per le liste in Python. Anche i dizionari, una delle strutture dati comunemente usate nella scienza dei dati, possono fare la comprensione. Con la comprensione di dict o dizionario, si possono facilmente creare dizionari.
Ricordo che, in python, una lista è definita con parentesi quadre e un dizionario è definito con parentesi graffe {}. L’idea usata nella comprensione delle liste viene portata avanti anche nella definizione della comprensione dei dizionari. La comprensione dict è definita con una sintassi simile, ma con una coppia chiave:valore nell’espressione.
- {chiave:valore per i in lista}
Vediamo 5 semplici esempi di utilizzo della comprensione dict per creare facilmente nuovi dizionari.
Aggiunto il sesto esempio di comprensione dict per cancellare chiavi in un dizionario.
Dict Comprehension Esempio 1
Vediamo un rapido esempio di creazione di un dict comprehension da una lista di numeri.
Qui usiamo una lista di numeri e creiamo un dizionario con il valore stringa del numero come chiave e il numero come valore.
# dict comprehension to create dict with numbers as values>{str(i):i for i in }{'1': 1, '3': 3, '2': 2, '5': 5, '4': 4}
Dict Comprehension Esempio 2
Diciamo che abbiamo una lista di frutti e possiamo usare dict comprehension per creare un dizionario con i frutti, gli elementi della lista come chiavi e la lunghezza di ogni stringa come valori.
# create list of fruits>fruits = # dict comprehension to create dict with fruit name as keys>{f:len(f) for f in fruits}{'cherry': 6, 'mango': 5, 'apple': 5, 'banana': 6}
Esempio di comprensione del dizionario 3
Creiamo un dizionario con la comprensione dict in modo che gli elementi della lista siano le chiavi e gli elementi con la prima lettera maiuscola i valori. Se non avete usato enumerate: enumerate può prendere qualsiasi cosa iterabile come input e restituisce l’elemento e il suo indice.
Qui usiamo la funzione enumerate sulla lista per creare indice e tuple di elementi della lista e li usiamo per creare un dizionario con comprensione dict. Creiamo un dizionario con gli elementi della lista come chiavi e l’indice degli elementi come valori. Tali dizionari con indice degli elementi sono spesso utili in una varietà di scenari.
# dict comprehension example using enumerate function>{f:i for i,f in enumerate(fruits)}{'cherry': 3, 'mango': 1, 'apple': 0, 'banana': 2}
Esempio di comprensione dict 5
Un altro uso della comprensione dict è quello di invertire chiave:valore in un dizionario esistente. A volte si potrebbe voler creare un nuovo dizionario da un dizionario esistente, in modo tale che il ruolo della coppia chiave:valore nel primo dizionario sia invertito nel nuovo dizionario. Possiamo usare Dict Comprehension e capovolgere il dizionario da elemento a indice a dizionario da indice a elemento.
# dict comprehension example to reverse key:value pair in a dictionary>f_dict = {f:i for i,f in enumerate(fruits)}>f_dict{'apple': 0, 'banana': 2, 'cherry': 3, 'mango': 1}# dict comprehension to reverse key:value pair in a dictionary>{v:k for k,v in f_dict.items()}{0: 'apple', 1: 'mango', 2: 'banana', 3: 'cherry'}
Abbiamo usato la funzione items dei dizionari per ottenere le coppie chiave:valore in un dizionario esistente e creato un nuovo dizionario dove le chiavi nel dizionario originale sono valori nel nuovo dizionario e viceversa.
Dict Comprehension Esempio 6: Come cancellare le chiavi selezionate dal dizionario usando Dict Comprehension?
Diciamo che hai un dizionario e vuoi creare un nuovo dizionario rimuovendo certe coppie chiave-valore. Possiamo usare Dict Comprehension per rimuovere le coppie chiave-valore selezionate da un dizionario e creare un nuovo dizionario.
Utilizziamo il dizionario “frutta” che abbiamo creato sopra.
fruits = f_d1 ={f:f.capitalize() for f in fruits}f_d1
Utilizziamo diction comprehension per rimuovere due chiavi, apple e banana, e i loro valori dal dizionario frutta.
# keys to be removed>remove_this = {'apple','cherry'}# dict comprehension example to delete key:value pairs in a dictionary>{key:f_d1 for key in f_d1.keys() - remove_this}{'banana': 'Banana', 'mango': 'Mango'}
Abbiamo rimosso le chiavi, apple e cherry, semplicemente usando l’oggetto dict keys con operazioni di set e ora il nuovo dizionario contiene solo banana e mango.