Python - 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/python
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/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Alice']: ", dict['Alice']
Quando il codice sopra viene eseguito, produce il seguente risultato:
dict['Alice']:
Traceback (most recent call last):
File "test.py", line 4, in <module>
print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'
Aggiornamento del dizionario
Puoi aggiornare un dizionario aggiungendo una nuova voce o una coppia chiave-valore, modificando una voce esistente o eliminando una voce esistente come mostrato di seguito nel semplice esempio:
#!/usr/bin/python
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/python
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. Notare che viene sollevata un'eccezione perché afterdel 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 sono consentite più voci 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/python
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/python
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: unhashable type: 'list'
Funzioni e metodi del dizionario incorporati
Python include le seguenti funzioni di dizionario:
Sr.No. | Funzione con descrizione |
---|---|
1 | cmp (dict1, dict2) Confronta gli elementi di entrambi i dict. |
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. | Metodi con 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) Restituisce true se la chiave nel dizionario dict , false in caso contrario |
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 |