Annuncio pubblicitario
Un dizionario Python è una struttura di dati simile a un array associativo trovato in altri linguaggi di programmazione. Un array o un elenco indicizza gli elementi per posizione. Un dizionario, d'altra parte, indicizza gli elementi di chiavi che possono essere stringhe. Pensa a un dizionario come a insiemi non ordinati di valore-chiave accoppiamenti.
In questo articolo, ti presentiamo come lavorare con il dizionario Python.
Creare un dizionario
Esistono diversi modi per creare un dizionario Python. Il più semplice utilizza l'inizializzazione del controvento, con una sintassi che ricorda JSON Come ottenere Python e JavaScript per comunicare tramite JSONOggi ti mostrerò come utilizzare JSON per inviare dati da JavaScript a Python. Tratterò di come configurare un server Web, insieme a tutto il codice necessario. Leggi di più .
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27}
Puoi usare anche i numeri come chiavi. Tuttavia, fai attenzione a usare i numeri in virgola mobile come chiavi, poiché il
il computer li memorizza come approssimazioni Tutto ciò che devi sapere sulla gestione della RAM e della memoriaLa RAM è la memoria a breve termine del tuo computer. Pertanto, la gestione della memoria ha un impatto significativo sulle prestazioni del sistema. Qui spieghiamo come funziona la RAM e se è possibile fare qualsiasi cosa per aumentarne l'efficienza. Leggi di più .rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} stampa rain_percent. print rain_percent [1980] # stampe. {1980: '17%', 1981: '15%', 1982: '10%'} 17%
Specifica di coppie valore-chiave
È inoltre possibile creare e inizializzare un dizionario utilizzando coppie di valori nome come argomenti di parole chiave su dict () costruttore.
popolazione = dict (California = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) popolazione di stampa. # stampe. {"Connecticut": 3574097, "Delaware": 897934, "California": 37253956, "Colorado": 5029196}
Matrice di tuple chiave-valore
Un altro modo per creare un dizionario è utilizzare una matrice di tuple chiave-valore. Ecco lo stesso esempio di cui sopra.
paia = [('California', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)] popolazione = dict (coppie) popolazione di stampa. # stampe. {"Connecticut": 3574097, "Delaware": 897934, "California": 37253956, "Colorado": 5029196}
Comprensione dettata
La comprensione di Dict fornisce una sintassi interessante per inizializzare un dict se è possibile calcolare i valori in base alle chiavi. Quanto segue inizializza un dettato di numeri e valori quadrati per un intervallo di numeri.
stampa {x: x ** 2 per x in xrange (10, 20)} # stampe. {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 dettato ({x: x ** 2 ..}) scorre su questo intervallo e inizializza il dizionario.
Lavorare con un dizionario Python
Cosa puoi fare con i dizionari dopo averli creati? Bene, puoi accedere agli elementi, aggiornare i valori, eliminare gli elementi, ecc.
Accesso agli elementi del dizionario Python
Accedi a un elemento di un dict usando la chiave tra parentesi, proprio come faresti tu un array o un elenco Funzionamento di array ed elenchi in PythonLe matrici e gli elenchi sono alcune delle strutture di dati più utili nella programmazione, anche se poche persone le usano al massimo delle loro potenzialità. Leggi di più .
popolazione di stampa ['Delaware'] # stampe. 897934.
Se la chiave è un numero, non hai bisogno delle virgolette. L'espressione appare quindi come un elenco o indicizzazione di array.
print rain_percent [1980] # stampe. 17%
Il tipo di chiave quando si accede ad essa deve corrispondere a ciò che è memorizzato nel dizionario Python. Di seguito viene generato un errore poiché le chiavi memorizzate sono numeri mentre la chiave di accesso è una stringa.
x = '1980' stampa rain_percent [x] # risultati 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% '} print rain_percent [1983] # prints 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.
print rain_percent.get (1985, '0%') # stampe. 0%
Verifica dell'esistenza
Cosa succede se si desidera verificare la presenza di una chiave senza effettivamente tentare di accedervi (e possibilmente incontrare un KeyError come sopra)? Puoi usare il nel parola chiave nel modulo digitare dct che restituisce un valore booleano.
stampa 1980 in rain_percent. stampa '1980' in rain_percent. # stampe. Vero. Falso.
Invertire la condizione (ovvero assicurarsi che la chiave non sia presente nel dizionario Python) utilizzando il modulo chiave non in dct. Ciò equivale alla negazione standard di Python non digitare dct.
stampa 1980 non in rain_percent. stampa 1985 non in rain_percent. # stampe. Falso. Vero.
Elementi di modifica
Modificare il valore assegnando alla chiave richiesta.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} utenti ['età'] = 29. utenti di stampa. # stampe. {'lastname': 'Smith', 'age': 29, 'firstname': 'John'}
Usa la stessa sintassi per aggiungere una nuova mappatura al dizionario Python.
users ['dob'] = '15 -sep-1971 ' utenti di stampa. # stampe. {'dob': '15 -sep-1971 ',' lastname ':' Smith ',' age ': 29,' firstname ':' John '}
Aggiorna più elementi di un dizionario in un colpo solo usando aggiornare() metodo.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.update ({'age': 29, 'dob': '15 -sep-1971 '}) utenti di stampa. # stampe. {'dob': '15 -sep-1971 ',' lastname ':' Smith ',' age ': 29,' firstname ':' John '}
Impostare un valore predefinito per una chiave 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') # stampe. John # imposta il valore. print users.setdefault ('city', 'NY') # stampe. NY # Valore finale. utenti di stampa. # stampe. {'lastname': 'Smith', 'age': 27, 'firstname': 'John', 'city': 'NY'}
Eliminazione di elementi
Elimina i mapping nel dizionario usando il del operatore. Questo operatore non restituisce nulla.
Incontrerai un KeyError se la chiave non esiste nel dizionario.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} del users ['age'] utenti di stampa. # stampe. {'lastname': 'Smith', 'firstname': 'John'}
Usa il pop() metodo invece, quando si desidera ripristinare il valore eliminato.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} print users.pop ('age') utenti di stampa. # stampe. 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 il secondo argomento come segue:
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.pop ('pippo', Nessuno) utenti di stampa. # stampe. {'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']) utenti di stampa.
Vuoi eliminare tutte le chiavi da un dizionario? Usa il chiaro() metodo.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.clear () utenti di stampa. # stampe. {}
Looping con dizionari Python
Python fornisce molti metodi per il looping Come funzionano i loop Do-While nella programmazione del computerI loop sono uno dei primi tipi di controllo che imparerai in programmazione. Probabilmente conosci il ciclo while e for, ma cosa compie un ciclo do-while? Leggi di più sopra le voci di un dizionario. Scegline uno adatto alle tue esigenze.
Tasti per il ciclo continuo
- Il metodo più semplice per elaborare le chiavi (e possibilmente i valori) in sequenza utilizza un ciclo del modulo:
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} per k negli utenti: stampa k, '=>', utenti [k] # stampe. cognome => Smith. età => 27. nome => Giovanni.
- Utilizzando il metodo iterkeys () funziona esattamente come sopra. Fai la tua scelta su quale modulo vuoi usare.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} per k in users.iterkeys (): stampa k, '=>', utenti [k] # stampe. cognome => Smith. età => 27. nome => Giovanni.
- Un terzo metodo per recuperare ed elaborare le chiavi in un ciclo prevede l'utilizzo della funzione integrata iter ().
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} per k in iter (utenti): stampa k, '=>', utenti [k] # stampe. cognome => Smith. età => 27. nome => Giovanni.
- Quando è necessario elaborare l'indice della chiave, utilizzare il enumerare() funzione integrata come mostrato.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} per indice, digitare enumerate (utenti): stampa indice, chiave, '=>', users [k] # stampe. 0 cognome => John. 1 età => Giovanni. 2 nome = = John.
Passare in rassegna 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 (): stampa k, '=>', v. # stampe. cognome => Smith. età => 27. nome => Giovanni.
Iterazione sui valori
- Il metodo itervalues () può essere utilizzato per scorrere su tutti i valori nel dizionario. Anche se questo metodo sembra simile a un ciclo che utilizza valori(), è più efficiente poiché non estrae tutti i valori contemporaneamente.
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} per valore in users.itervalues (): stampa valore. # stampe. Fabbro. 27. John.
Estrazione di array
I seguenti metodi descrivono l'estrazione di varie informazioni del dizionario Python in una forma di matrice. L'array risultante può essere ripetuto in loop usando normali costrutti Python. Tuttavia, tenere presente che l'array restituito può essere di grandi dimensioni a seconda delle dimensioni del dizionario. Quindi potrebbe essere di più costoso (per quanto riguarda la 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 durante la modifica del dizionario può causare un RuntimeError.
- Il metodo elementi() restituisce una matrice di tuple valore-chiave. Puoi iterare su queste coppie chiave-valore come mostrato:
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} per k, v in users.items (): stampa k, '=>', v. # stampe. cognome => Smith. età => 27. nome => Giovanni.
- Recupera tutte le chiavi nel dizionario usando il metodo (tasti).
users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} print users.keys () # stampe. ['lastname', 'age', 'firstname']
Utilizzare l'array restituito per passare in rassegna le chiavi.
per k in users.keys (): print k, '=>', users [k] # stampe. cognome => Smith. età => 27. nome => Giovanni.
- Allo stesso modo, utilizzare il metodo valori() per recuperare tutti i valori nel dizionario.
per valore in users.values (): stampa valore. # stampe. Fabbro. 27. John.
Come si usano i dizionari Python?
In questo articolo abbiamo cercato di trattare i casi d'uso più comuni per i dizionari Python. Assicurati di dare un'occhiata a tutti i nostri altri articoli di Python 10 esempi di base di Python che ti aiuteranno a imparare velocementeQuesto articolo di esempi di base su Python è per coloro che hanno già qualche esperienza di programmazione e vogliono semplicemente passare a Python il più rapidamente possibile. Leggi di più per pari ulteriori suggerimenti su Python 5 corsi che ti porteranno da Python Beginner a ProQuesti cinque corsi ti insegneranno tutto sulla programmazione in Python, una delle lingue più in voga al momento. Leggi di più . Se hai altri casi d'uso che ritieni debbano essere inclusi, faccelo sapere nei commenti qui sotto!
Crediti immagine: viper345 / Shutterstock