Dizionario Python Come si può usare per scrivere un codice migliore
Un dizionario python è una struttura dati simile a un array associativo trovato in altri linguaggi di programmazione. Un array o una lista indicizza gli elementi per posizione. Un dizionario, d'altra parte, indicizza gli elementi per chiavi quali possono essere stringhe. Pensa a un dizionario come insieme non ordinato di valore-chiave coppie.
In questo articolo, ti presentiamo a lavorare con il dizionario Python.
Creare un dizionario
Esistono diversi modi per creare un dizionario Python. Il più semplice utilizza l'inizializzazione delle parentesi, con una sintassi che ricorda JSON Come ottenere Python e JavaScript per comunicare usando JSON Come ottenere Python e JavaScript per comunicare usando JSON Oggi ti mostrerò come usare JSON per inviare dati da JavaScript a Python . Tratterò su come configurare un server web, insieme a tutto il codice che ti serve. Leggi di più .
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27
Puoi usare anche i numeri come i tasti. Tuttavia, fai attenzione a utilizzare i numeri in virgola mobile come chiavi, poiché il computer li memorizza come approssimazioni Tutto ciò che c'è da sapere su RAM e gestione della memoria Tutto quello che c'è da sapere su RAM e gestione della memoria RAM è la memoria a breve termine del tuo computer. Quindi, la gestione della memoria ha un impatto significativo sulle prestazioni del sistema. Qui spieghiamo come funziona la RAM e se puoi fare qualcosa per aumentare la sua efficienza. Leggi di più .
rain_percent = 1980: '17% ', 1981: '15%', 1982: '10% ' stampa rain_percent print rain_percent [1980] # prints 1980: '17%', 1981: '15% ', 1982: '10% ' 17%
Specifica delle coppie valore-chiave
È inoltre possibile creare e inizializzare un dizionario utilizzando le coppie di valori nome come argomenti parola chiave per dict () costruttore.
population = dict (California = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) print population # prints 'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196
Matrice di tuple valore-chiave
Un altro modo per creare un dizionario è usare una serie di tuple con valori-chiave. Ecco lo stesso esempio di sopra.
pairs = [('California', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)] popolazione = dict (coppie) print population # prints 'Connecticut': 3574097, "Delaware": 897934, "California": 37253956, "Colorado": 5029196
Comprensione di Dict
La comprensione di Dict fornisce una sintassi interessante per inizializzare un dict se è possibile calcolare i valori in base alle chiavi. Il seguente inizializza un numero di numeri e valori quadrati per un intervallo di numeri.
stampa x: x ** 2 per x in xrange (10, 20) # prints 10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17 : 289, 18: 324, 19: 361
Come funziona? L'ultima parte (per x in xrange (10, 20)) restituisce un intervallo di numeri nell'intervallo specificato. La parte di comprensione del ditt (x: x ** 2 ...) esegue il loop su questo intervallo e inizializza il dizionario.
Lavorare con un dizionario Python
Cosa puoi fare con i dizionari una volta creati? Bene, puoi accedere a elementi, aggiornare valori, eliminare elementi, ecc.
Accesso agli elementi del dizionario Python
Accedi a un elemento di un dict usando il tasto tra parentesi, proprio come faresti con un array o un elenco Come funzionano le matrici e gli array in Python Come funzionano gli array e gli elenchi in Python Gli array e gli elenchi sono alcune delle strutture dati più utili nella programmazione - anche se poche persone li usano al massimo delle loro potenzialità. Leggi di più .
print population ['Delaware'] # stampa 897934
Se la chiave è un numero, non hai bisogno delle virgolette. L'espressione appare quindi come un elenco o un indice di array.
print rain_percent [1980] # stampa 17%
Il tipo di chiave durante l'accesso deve corrispondere a ciò che è memorizzato nel dizionario Python. Il seguente causa un errore poiché le chiavi memorizzate sono numeri mentre la chiave di accesso è una stringa.
x = '1980' print rain_percent [x] # risulta in 1 x = '1980' ----> 2 print rain_percent [x] KeyError: '1980'
Accesso a una chiave inesistente è un errore.
rain_percent = 1980: '17% ', 1981: '15%', 1982: '10% ' stampa rain_percent [1983] # stampa 1 rain_percent = 1980: '17%', 1981: '15% ', 1982 : '10% ' ----> 2 print rain_percent [1983] KeyError: 1983
Per accedere a una chiave e fornire un valore predefinito se la mappatura non esiste, utilizzare il ottenere() metodo con valore predefinito come secondo argomento.
stampa rain_percent.get (1985, '0%') # stampa 0%
Controllo dell'esistenza
Che cosa succede se si desidera verificare la presenza di una chiave senza effettivamente tentare di accedervi (e possibilmente incontrando a KeyError come sopra)? Puoi usare il nel parola chiave nel modulo digitare dct che restituisce un valore booleano.
print 1980 in rain_percent print '1980' in rain_percent # stampa True False
Invertire la condizione (ad esempio assicurati che la chiave non sia presente nel dizionario Python) usando il modulo chiave non in dct. Questo è equivalente alla negazione standard di Python non digitare in dct.
stampa 1980 non in rain_percent print 1985 non in rain_percent # prints False True
Modifica degli elementi
Modificare il valore assegnando alla chiave richiesta.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users ['age'] = 29 stampa utenti # prints 'lastname': 'Smith', 'age': 29, 'firstname': 'John'
Utilizzare la stessa sintassi per aggiungere una nuova mappatura al dizionario Python.
users ['dob'] = '15 -sep-1971 'stampa utenti # prints ' dob ': '15 -sep-1971', 'lastname': 'Smith', 'age': 29, 'firstname': ' John'
Aggiorna più elementi di un dizionario in un colpo usando il aggiornare() metodo.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users.update ('age': 29, 'dob': '15 -sep-1971 ') stampa utenti # prints 'dob': '15 -sep-1971 ',' lastname ':' Smith ',' age ': 29,' firstname ':' John '
Impostare un valore predefinito per un tasto utilizzando imposta default(). Questo metodo imposta il valore per la chiave se la mappatura non esiste. Restituisce il valore corrente.
# non cambia il valore corrente print users.setdefault ('firstname', 'Jane') # stampa John # imposta valore print users.setdefault ('city', 'NY') # prints NY # Valore finale stampa utenti # prints ' lastname ':' Smith ',' age ': 27,' firstname ':' John ',' city ':' NY '
Eliminazione di elementi
Eliminare i mapping nel dizionario usando il del operatore. Questo operatore non restituisce nulla.
Incontrerai a KeyError se la chiave non esiste nel dizionario.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 del users ['age'] print users # prints 'lastname': 'Smith', 'firstname': ' John'
Utilizzare il pop() metodo, invece, quando vuoi il valore cancellato.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 print users.pop ('age') stampa utenti # prints 27 'lastname': 'Smith', 'firstname ': 'John'
Cosa succede se si desidera eliminare una chiave se esiste, senza causare un errore in caso contrario? Puoi usare pop() e specificare Nessuna per la seconda argomentazione come segue:
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users.pop ('foo', None) stampa utenti # prints 'lastname': 'Smith', 'age ': 27,' firstname ':' John '
Ed ecco un one-liner per eliminare un mazzo di chiavi da un dizionario senza causare un errore su chiavi inesistenti.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27, 'dob': '15 -sep-1971 ' map (lambda x: users.pop (x, None) , ['age', 'foo', 'dob']) stampa utenti
Vuoi cancellare tutte le chiavi da un dizionario? Utilizzare il chiaro() metodo.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users.clear () stampa utenti # prints
Looping con dizionari di Python
Python fornisce molti metodi per il loop Come i cicli di lavoro funzionano nella programmazione dei computer Come funzionano i cicli di lavoro mentre i cicli di programmazione sono uno dei primi tipi di controllo che imparerai nella programmazione. Probabilmente sai su while e for loops, ma cosa fa un ciclo do-while? Leggi di più sulle voci di un dizionario. Scegli uno per soddisfare le tue necessità.
Looping Over Keys
- Il metodo più semplice per l'elaborazione delle chiavi (e possibilmente dei valori) in sequenza utilizza un ciclo del modulo:
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 per k negli utenti: print k, '=>', utenti [k] # prints lastname => Smith age = > 27 firstname => John
- Utilizzando il metodo iterkeys () funziona esattamente come sopra. Fai la tua scelta su quale forma vuoi usare.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 per k in users.iterkeys (): print k, '=>', utenti [k] # prints lastname = > Smith età => 27 firstname => John
- Un terzo metodo per recuperare ed elaborare le chiavi in un ciclo implica l'utilizzo della funzione integrata iter ().
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 per k in iter (utenti): print k, '=>', utenti [k] # prints lastname => Smith età => 27 firstname => John
- Quando è necessario l'indice della chiave in elaborazione, utilizzare il enumerare() funzione integrata come mostrato.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 per index, key in enumerate (users): indice di stampa, chiave, '=>', utenti [k] # stampe 0 cognome => John 1 età => John 2 firstname => John
Riprendendo le coppie chiave-valore
- Quando si desidera recuperare ciascuna coppia chiave-valore con una singola chiamata, utilizzare iteritems ().
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 per k, v in users.iteritems (): print k, '=>', v # print lastname => Smith età => 27 firstname => John
Iterazione sui valori
- Il metodo itervalues () può essere usato per iterare su tutti i valori nel dizionario. Anche se questo metodo è simile a un loop che usa valori(), è più efficiente poiché non estrae tutti i valori contemporaneamente.
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 per valore in users.itervalues (): valore di stampa # stampa Smith 27 John
Estrazione di array
I seguenti metodi descrivono l'estrazione di varie informazioni sul dizionario Python in una forma di matrice. L'array risultante può essere ripetuto su normali costrutti python. Tuttavia, tieni presente che l'array restituito può essere grande a seconda delle dimensioni del dizionario. Quindi potrebbe essere di più costoso (in termini di memoria) per elaborare questi array piuttosto che utilizzare i metodi iteratori sopra.
Un caso in cui è accettabile lavorare con questi array è quando è necessario eliminare elementi dal dizionario quando si incontrano elementi indesiderati. Lavorare con un iteratore mentre si modifica il dizionario può causare un RuntimeError.
- Il metodo elementi() restituisce una serie di tuple di valori-chiave. Puoi scorrere su queste coppie chiave-valore come mostrato:
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 per k, v in users.items (): print k, '=>', v # print lastname => Smith età => 27 firstname => John
- Recupera tutte le chiavi nel dizionario usando il metodo (tasti).
users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 print users.keys () # prints ['lastname', 'age', 'firstname']
Utilizzare l'array restituito per eseguire il loop delle chiavi.
per k in users.keys (): print k, '=>', utenti [k] # prints lastname => Smith age => 27 firstname => John
- In modo simile, usa il metodo valori() per recuperare tutti i valori nel dizionario.
per valore in users.values (): valore di stampa # stampa Smith 27 John
Come usate i dizionari di Python?
Abbiamo cercato di coprire i casi d'uso più comuni per i dizionari Python in questo articolo. Assicurati di dare un'occhiata a tutti gli altri nostri articoli Python 10 Esempi Python di base che ti aiuteranno ad imparare velocemente 10 esempi Python di base che ti aiuteranno ad imparare velocemente Questo articolo di esempi di python di base è per coloro che hanno già un'esperienza di programmazione e vogliono semplicemente transizione a Python il più rapidamente possibile. Ulteriori informazioni per ulteriori suggerimenti Python 5 Corsi che ti porteranno da Python per principianti a Pro 5 Corsi che ti porteranno da Python Beginner a Pro Questi cinque corsi ti insegneranno tutto sulla programmazione in Python, una delle lingue più calde là fuori proprio adesso. Leggi di più . Se hai altri casi d'uso che ritieni debbano essere inclusi, ti preghiamo di farcelo sapere nei commenti qui sotto!
Crediti immagine: viper345 / Shutterstock
Scopri di più su: Python.