Come vengono gestite le chiavi mancanti nei dizionari di Python?
I dati sono archiviati come coppie di valore chiave nei dizionari di Python che sono importanti strutture di dati. Poiché ogni chiave nei dizionari corrisponde a un valore, sono noti come array associativi. Possiamo recuperare direttamente il valore di una chiave da un dizionario Python racchiudendo la chiave tra parentesi quadrate. Esaminiamo come ottenere il valore di una chiave da un dizionario in Python:
Cosa succede se proviamo ad accedere alla chiave di un dizionario che non è presente o non esiste?
Come possiamo vedere, viene sollevato un KeyError quando tentiamo di accedere a una chiave di dizionario che non esiste. Se l'errore non viene risolto, il nostro programma si bloccherà. Python offre una varietà di opzioni per evitarlo, ma l'utilizzo di DefaultDict è la soluzione migliore per questo. Fornisce un metodo chiaro e sicuro per fornire valori predefiniti specificati per qualsiasi chiave che non esiste senza la necessità di crearlo inizialmente.
Cosa è defaultDict in Python?
Un modulo che fornisce tipi di container specializzati è chiamato raccolte ed è disponibile nella libreria standard Python. Il tipo di impostazione predefinita è uno di questi; È una classe del tipo di dict che è stata creata appositamente per aiutarti con le chiavi mancanti. Python DefaultDict Il tipo deriva da Dict:
Il codice dato dimostra che il tipo di impostazione predefinita in Python è una sottoclasse del dict. Ciò implica che ha molte delle stesse caratteristiche della classe del dizionario modificando e estendendo alcune delle sue caratteristiche.
Le seguenti sono le modifiche significative alla classe del dizionario:
In generale, il defaultDict offre metodi per dare ai dizionari i valori predefiniti in assenza di una chiave. Qualsiasi richiamabile accettabile (come int, elenco, ecc.) o nessuno può essere passato al ".DEFAULT_FACTORY "CALLABLE. Ogni volta che proviamo ad accedere o modificare il valore corrispondente con una chiave mancante, DefaultDict chiama automaticamente un callo se viene fornito.
Un'introduzione alla classe DefaultDict in Python e come differisce da un dizionario di Python standard sono coperti in questa sezione. Ora useremo questi oggetti nella sezione seguente per migliorare le tue capacità di utilizzare i dizionari e gestire i dati mancanti.
Come possiamo creare un latto predefinito?
Questa sezione ti insegna come utilizzare il modulo di raccolte di Python per creare un oggetto DefaultDict. Possiamo semplicemente importare il modulo perché questo modulo è incluso nella libreria standard di Python. Esploriamo come possiamo creare un latto predefinito:
Qui, viene creato un letto predefinito con il nome, "Defdict". Dobbiamo fornire una callone valida per generare correttamente il dizionario. Questi canali forniscono metodi per produrre molti tipi di oggetti tra cui numeri, elenchi, ecc. Invece di usare la funzione, dobbiamo usare il callabile.
Quando creiamo il dizionario in questo caso, passiamo l'elenco al ".Fabbrica predefinita ". Il Defdict viene quindi utilizzato allo stesso modo di un dizionario standard. Si noti che il dizionario assegna il valore predefinito che riceve dal chiamare l'elenco () quando si tenta di accedere o aggiornare il valore che è mappato a una chiave che non esiste.
Non chiamare Default_Factory usando parentesi al momento dell'inizializzazione, poiché è necessario passare un oggetto Python Callable valido.
Gestione dei tasti mancanti usando il letto predefinito
Questa sezione ti insegna come utilizzare il defaultDict di Python per gestire le chiavi mancanti. Sappiamo già che è necessario specificare un tipo di valore predefinito durante la creazione di un nuovo default. Questo ci consente di gestire i dati mancanti quando si tenta di accedere a una chiave che non è presente o non esiste. Diamo un'occhiata al seguente:
Dall'esempio dato, è chiaro che abbiamo successo nell'accesso a una chiave che non esisteva e che un valore "0" viene restituito.
Contare gli elementi dell'elenco utilizzando il defaultDict
Contare efficacemente gli elementi/oggetti in un iterabile e restituire i conteggi in un dizionario sono due applicazioni creative per l'oggetto DefaultDict. Diamo un'occhiata a come possiamo raggiungere questo obiettivo usando il dizionario standard di Python prima di arrivare a come farlo con l'oggetto DefaultDict.
L'istruzione If-Else viene utilizzata nel codice dato per tenere conto della possibilità che la chiave manca dal nostro dizionario.
Utilizzando il defaultDict, possiamo semplificarlo. Anche se le nostre chiavi non esistevano in precedenza, potremmo incrementare in sicurezza e creare un numero intero come chiave predefinita.
Qui, abbiamo creato un oggetto DefaultDict creando un call e passando un valore intero ad esso. Di conseguenza, al valore viene dato un valore di 0 se manca una chiave. Per questo motivo, potremmo aumentare in sicurezza il valore di una chiave di 1 quando ne incontriamo uno che non esiste.
Raggruppare i dati con defaultDict
L'oggetto DefaultDict può essere utilizzato per raggruppare i dati in base ad altre strutture di dati. Con questo, iteliamo sugli oggetti (come un elenco contenente tuple, una raccolta di elenchi o un altro dizionario) per raggruppare i dati.
Diamo un'occhiata a un esempio. Potremmo fare un dizionario con i nostri corsi come chiavi e i nomi degli studenti iscritti a ciascun corso come elenco se abbiamo un dizionario di nomi degli studenti e corsi che stanno studiando.
Diamo un'occhiata a come farlo usando prima un dizionario Python standard. Quindi, lo implementiamo utilizzando DefaultDict.
Questo è un po 'complicato, come possiamo vedere. Per fortuna, DefaultDict semplifica sostanzialmente questo. Possiamo eliminare l'istruzione IF-ELSE impostando un valore predefinito come elenco vuoto.
Possiamo osservare quanto sia più semplice comprendere questo esempio perché non dobbiamo preoccuparci della gestione degli errori. Quando manca una chiave, il nostro Dimpult Crea sempre un elenco vuoto. Di conseguenza, aggiungere al valore della chiave è semplice e non dobbiamo preoccuparci di aumentare i keyerrors.
Accumulare i dati utilizzando DefaultDict
Ora accumuliamo i dati utilizzando DefaultDict di Python. Ci sono istanze in cui è necessario determinare la somma totale dei valori/dati in una raccolta o sequenza. Supponiamo di avere i dati sugli articoli venduti in un negozio. Prima memorizzare i dati come elenco di oggetti Tuple:
Possiamo determinare le vendite totali per ciascun prodotto utilizzando questi dati. Possiamo realizzare che l'utilizzo del defaultDict con il float impostato come "fabbrica predefinita".
Per iterare sugli oggetti, abbiamo costruito un loop per. Le vendite per elemento del dizionario sono calcolate utilizzando un operatore di assegnazione aumentato (+=). Il secondo ciclo stampica le vendite dopo aver iterato tramite gli articoli Defdict.
Conclusione
Le informazioni necessarie sull'oggetto DefaultDict in Python e come puoi usarle erano così trattate in questo tutorial. Hai imparato per la prima volta il comportamento dei dizionari di Python quando mancano le chiavi. Quindi, hai imparato come specificare i valori predefiniti utilizzando il Python DefaultDict. Abbiamo discusso di come le chiavi mancanti possono essere gestite utilizzando DefaultDict. Abbiamo appreso che l'oggetto DefaultDict può essere utilizzato per aggregare, accumulare e contare i dati.