Python 3 - Dizionario

Ogni chiave è separata dal suo valore da due punti (:), gli elementi sono separati da virgole e il tutto è racchiuso tra parentesi graffe. Un dizionario vuoto senza elementi viene scritto con solo due parentesi graffe, in questo modo: {}.

Le chiavi sono univoche all'interno di un dizionario mentre i valori potrebbero non esserlo. I valori di un dizionario possono essere di qualsiasi tipo, ma le chiavi devono essere di un tipo di dati immutabile come stringhe, numeri o tuple.

Accesso ai valori nel dizionario

Per accedere agli elementi del dizionario, puoi usare le familiari parentesi quadre insieme alla chiave per ottenere il suo valore. Di seguito è riportato un semplice esempio:

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])

Quando il codice sopra viene eseguito, produce il seguente risultato:

dict['Name']:  Zara
dict['Age']:  7

Se tentiamo di accedere a un elemento di dati con una chiave, che non fa parte del dizionario, otteniamo un errore come segue:

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print ("dict['Alice']: ", dict['Alice'])

Quando il codice sopra viene eseguito, produce il seguente risultato:

dict['Zara']:
Traceback (most recent call last):
   File "test.py", line 4, in <module>
      print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'

Aggiornamento del dizionario

È possibile aggiornare un dizionario aggiungendo una nuova voce o una coppia chiave-valore, modificando una voce esistente o eliminando una voce esistente come mostrato in un semplice esempio riportato di seguito.

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School" # Add new entry

print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

Quando il codice sopra viene eseguito, produce il seguente risultato:

dict['Age']:  8
dict['School']:  DPS School

Elimina elementi del dizionario

È possibile rimuovere singoli elementi del dizionario o cancellare l'intero contenuto di un dizionario. È inoltre possibile eliminare l'intero dizionario in un'unica operazione.

Per rimuovere esplicitamente un intero dizionario, è sufficiente utilizzare il deldichiarazione. Di seguito è riportato un semplice esempio:

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

del dict['Name'] # remove entry with key 'Name'
dict.clear()     # remove all entries in dict
del dict         # delete entire dictionary

print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

Questo produce il seguente risultato.

Viene sollevata un'eccezione perché dopo del dict, il dizionario non esiste più.

dict['Age']:
Traceback (most recent call last):
   File "test.py", line 8, in <module>
      print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

Note - Il metodo del () è discusso nella sezione successiva.

Proprietà delle chiavi del dizionario

I valori del dizionario non hanno restrizioni. Possono essere qualsiasi oggetto Python arbitrario, sia oggetti standard che oggetti definiti dall'utente. Tuttavia, lo stesso non vale per le chiavi.

Ci sono due punti importanti da ricordare sulle chiavi del dizionario:

(a)Non è consentita più di una voce per chiave. Ciò significa che non sono consentite chiavi duplicate. Quando si incontrano chiavi duplicate durante l'assegnazione, vince l'ultima assegnazione. Ad esempio:

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print ("dict['Name']: ", dict['Name'])

Quando il codice sopra viene eseguito, produce il seguente risultato:

dict['Name']:  Manni

(b)Le chiavi devono essere immutabili. Ciò significa che puoi usare stringhe, numeri o tuple come chiavi del dizionario, ma qualcosa come ['chiave'] non è consentito. Di seguito è riportato un semplice esempio:

#!/usr/bin/python3

dict = {['Name']: 'Zara', 'Age': 7}
print ("dict['Name']: ", dict['Name'])

Quando il codice sopra viene eseguito, produce il seguente risultato:

Traceback (most recent call last):
   File "test.py", line 3, in <module>
      dict = {['Name']: 'Zara', 'Age': 7}
TypeError: list objects are unhashable

Funzioni e metodi del dizionario incorporati

Python include le seguenti funzioni di dizionario:

Sr.No. Descrizione della funzione
1 cmp (dict1, dict2)

Non più disponibile in Python 3.

2 len (dict)

Fornisce la lunghezza totale del dizionario. Questo sarebbe uguale al numero di elementi nel dizionario.

3 str (dict)

Produce una rappresentazione di stringa stampabile di un dizionario

4 tipo (variabile)

Restituisce il tipo di variabile passata. Se la variabile passata è dizionario, restituirà un tipo di dizionario.

Python include i seguenti metodi di dizionario:

Sr.No. Metodo e descrizione
1 dict.clear ()

Rimuove tutti gli elementi del dizionario dict

2 dict.copy ()

Restituisce una copia superficiale del dizionario dict

3 dict.fromkeys ()

Crea un nuovo dizionario con chiavi da seq e valori impostati su valore .

4 dict.get (key, default = None)

Per chiave chiave, restituisce il valore o il valore predefinito se la chiave non è nel dizionario

5 dict.has_key (chiave)

Rimosso, usa invece quello in funzione.

6 dict.items ()

Restituisce un elenco di coppie di tupla di dict (chiave, valore)

7 dict.keys ()

Restituisce l'elenco delle chiavi del dizionario dict

8 dict.setdefault (chiave, predefinito = Nessuno)

Simile a get (), ma imposterà dict [key] = default se key non è già in dict

9 dict.update (dict2)

Aggiunge le coppie chiave-valore di dict2 del dizionario a dict

10 dict.values ​​()

Restituisce l'elenco dei valori di dict del dizionario