Python DefaultDict

Python DefaultDict

Python offre molte strutture di dati integrate, come elenchi, tuple e dizionari, per salvare e gestire i dati in modo efficiente. I dizionari forniscono un modo semplice per salvare i dati come coppie di valore chiave. Una chiave funge da indice e viene utilizzata per recuperare i dati. Le chiavi dovrebbero essere uniche e immutabili in tutto il dizionario. Le chiavi sono principalmente stringhe e numeri interi, sebbene il valore di una chiave possa essere di qualsiasi tipo, come un numero intero, una stringa, un numero di punto mobile o un numero complesso. Nel frattempo, un dizionario può contenere una raccolta, come un elenco, una tupla o qualche altro tipo di dizionario. Un dizionario in Python viene creato usando una coppia di staffe ricci, in cui ogni coppia di valore chiave è separata da una virgola.

Cosa succede se si tenta di accedere o modificare una chiave specifica in un dizionario che non esiste? Bene, in questo caso, l'interprete di Python aumenterà l'errore "Keyerror" e terminerà l'esecuzione del programma.

Vediamo un esempio dell'errore "keyerror".

#Crea di un dizionario
my_dict = 1: "ciao", 2: "benvenuto", 3: "linuxhint"
#Accesso di una chiave che non esiste
my_dict [4]

Produzione

Per gestire questo errore, Python fornisce il tipo di defaultDict, una classe di dizionario che può essere trovata nel modulo di raccolta. Questo articolo copre in dettaglio il letto di Python.

Spiegazione ed esempi di defaultDict

Il lettore predefinito è l'alternativa del dizionario Python. Restituisce oggetti del tipo di dizionario. Il defaultDict è una sottoclasse di dict. Nel caso di una chiave mancante, anziché raccogliere un errore "keyerror", il valore predefinito viene fornito per la chiave inesistente. La sintassi di DefaultDict è la seguente:

DefaultDict (default_factory)

La funzione DefaultDict prende il parametro Default_Factory come argomento. La funzione Default_Factory restituisce il valore predefinito per il defaultDict definito. Se proviamo ad accedere o modificare una chiave mancante, la funzione default_factory restituisce il valore predefinito come risultato. Se manca la funzione Default_Factory, allora DefaultDIC aumenterà un errore "keyerror" se ci sono chiavi mancanti.

Innanzitutto, implementeremo un DEAFALTDIC nel nostro script Python per accedere alle chiavi esistenti e mancanti.

#IMPORT il DICT predefinito dal modulo di raccolta
Dalle raccolte Importa DefaultDict
#Definire una funzione per restituire il valore predefinito
def my_func ():
Stampa ("La chiave non è definita")
#Crea di definire un determinato
#passing the my_func () come argomento a defaultDict
my_dict = defaultDict (my_func)
#Definire le chiavi e i valori
my_dict [1] = "ciao"
my_dict [2] = "benvenuto"
my_dict [3] = "linuxhint"
#Accesso dei valori usando i tasti
stampa (my_dict [1])
Stampa (my_dict [2])
Stampa (my_dict [3])
#Accesso della chiave mancante o non definita
my_dict [4]

Produzione

Il [4] è la chiave mancante. Quindi, invece di raccogliere un errore "keyerror", chiama la funzione default_factory, che restituisce il valore predefinito.


Una funzione Lambda, nota come funzione anonima, può anche essere utilizzata come parametro Default_Factory.

Successivamente, implementeremo una funzione Lambda e la passeremo come argomento a DefaultDict.

#IMPORT il DICT predefinito dal modulo di raccolta
Dalle raccolte Importa DefaultDict
#Crea di definire un determinato
#Passare la funzione Lamnda come argomento per defaultDict
my_dict = defaultDict (lambda: "La chiave non è definita")
#Definire le chiavi e i valori
my_dict [1] = "ciao"
my_dict [2] = "benvenuto"
my_dict [3] = "linuxhint"
#Accesso dei valori usando i tasti
stampa (my_dict [1])
Stampa (my_dict [2])
Stampa (my_dict [3])
#Accesso della chiave mancante o non definita
Stampa (my_dict [4])

DefaultDict chiama default_factory per fornire il valore predefinito, ma la funzione __Missing () __ fornisce il valore predefinito. La funzione __Missing () __ è una funzione integrata in Python che prende il parametro Default_Factory come argomento. Se il parametro Default_Factory non è definito, la funzione __Missing () __ aumenta l'errore "keyerror".

Qui useremo la funzione __Missing () __ nel nostro script Python.

#IMPORT il DICT predefinito dal modulo di raccolta
Dalle raccolte Importa DefaultDict
#Definire una funzione per restituire il valore predefinito
def my_func ():
Stampa ("La chiave non è definita")
#Crea di definire un determinato
#passing the my_func () come argomento a defaultDict
my_dict = defaultDict (my_func)
#Definire le chiavi e i valori
my_dict [1] = "linuxhint"
#Accesso dei valori usando i tasti
stampa (my_dict [1])
#Accesso della chiave mancante o non definita
my_dict.__Missing __ (2)

Produzione

Le classi List e Int possono anche essere utilizzate come parametri default_factory con defaultDict.

Elenco come parametro default_factory

DefaultDict viene creato con i valori dell'elenco quando la classe Elenco viene passata un parametro Default_Factory.

#IMPORT il DICT predefinito dal modulo di raccolta
Dalle raccolte Importa DefaultDict
# Definizione di un dato di default
# Classe di elenco di passaggio come default_factory
my_dict = defaultDict (elenco)
Per i nell'intervallo (7):
my_dict [i].append (i)
#Printing i valori
Stampa (my_dict)

Produzione

L'output mostra i valori nell'elenco. Come puoi vedere, è stato creato un latto predefinito che contiene la chiave e i valori.

Integers come parametro default_factory

Se passiamo la classe INT come parametro Default_Factory, allora possiamo creare un default Dict che contiene solo numeri interi. Creeremo un elenco di numeri interi e quindi lo salveremo su DefaultDict.

#IMPORT il DICT predefinito dal modulo di raccolta
Dalle raccolte Importa DefaultDict
# Definizione di un dato di default
# Passing Int Class come default_factory
my_dict = defaultDict (int)
#Crea di un elenco di numeri interi
my_list = [1,2,3]
per me in my_list:
my_dict [i]+= 1
#Printing i valori
Stampa (my_dict)

Produzione

Nell'output indicato, i valori interi prima del colon (:) sono chiavi, mentre i valori interi dopo il colon sono valori.

Conclusione

Il dafualtdict è una classe di un dizionario presente nel modulo di collezioni. Funziona come un dizionario Python ma non aumenta un "keyerror" quando non viene trovata una chiave. Questo articolo spiega in dettaglio il lettore predefinito con vari esempi.