Le strutture dati sono i componenti essenziali di qualsiasi linguaggio di programmazione che memorizza e gestisce i dati in modo efficiente. Python fornisce molte strutture dati integrate, ad esempio.e., liste, tuple e dizionari, che aiutano i programmatori a creare applicazioni efficienti. I dizionari Python memorizzano i dati in coppie chiave-valore. L'OrderedDict è la sottoclasse della classe dict e mantiene l'ordine delle chiavi in cui sono state inserite in. Questa è l'unica e l'unica differenza tra dict e OrderDict. Il dict non mantiene l'ordine della chiave.
OrderedDict mantiene l'ordine di inserimento delle chiavi e, quando iteriamo attraverso OrderedDict, restituisce le chiavi nello stesso ordine. D'altra parte, quando l'iterazione viene eseguita su dict, le chiavi vengono restituite in ordine casuale. Tuttavia, i dizionari ora sono ordinati in Python 3.6 e versioni successive e restituiscono i valori nello stesso ordine in cui sono inseriti. La classe OrderedDict esiste nel modulo delle collezioni. Pertanto, per utilizzare la classe OrderedDict, per prima cosa importare il modulo delle collezioni. Questo articolo spiega in dettaglio Python OrderedDict con esempi.
Esempi
Creiamo un OrderedDict nel nostro script Python e aggiungiamo i dati sotto forma di chiavi e valori. Item() è la funzione Python incorporata che restituisce le informazioni su chiavi e valori.
#importando il modulo collezioniimportare collezioni
#creazione di un OrderedDict
my_dict = collezioni.OrdinatoDict()
my_dict["A"]=1
my_dict["B"]=2
my_dict["C"]=3
my_dict["D"]=4
#dichiarare un ciclo for per scorrere l'OrderDict
per io in my_dict.elementi():
stampa(i)
Produzione
Nell'output, si può osservare che OrderedDict restituisce le chiavi e i valori nello stesso modo in cui sono stati inseriti.
Ora creiamo un altro OrderDict di uno studente e memorizziamo le informazioni sullo studente in esso.
#importando il modulo collezioniimportare collezioni
#creazione di un OrdinatoDitto dello studente
std_dict = collezioni.OrdinatoDict()
std_dict['name']='John'
std_dict['età']=23
std_dict['email']='[email protetta]'
std_dict['class']='BS'
#dichiarare un ciclo for per scorrere l'OrderDict
per io in std_dict.elementi():
stampa(i)
Produzione
Modifica dei valori delle chiavi
Possiamo cambiare il valore della chiave specifica di OrderedDict. Se cambiamo il valore di una chiave particolare, l'ordine delle chiavi rimarrà lo stesso in OrderDict. Cambiamo il valore dell'età nello studente OrderDict.
#importando il modulo collezioniimportare collezioni
#creazione di un OrdinatoDitto dello studente
std_dict = collezioni.OrdinatoDict()
std_dict['name']='John'
std_dict['età']=23
std_dict['email']='[email protetta]'
std_dict['class']='BS'
print("L'ordine delle chiavi prima di modificare il valore dell'età:")
#dichiarare un ciclo for per scorrere l'OrderDict
per io in std_dict.elementi():
stampa(i)
#cambiare il valore dell'età
std_dict['età']=25
print("L'ordine delle chiavi dopo aver modificato il valore dell'età:")
per io in std_dict.elementi():
stampa(i)
Produzione
L'output mostra che l'ordine delle chiavi rimane lo stesso quando cambiamo il valore di una particolare chiave.
Eliminazione del valore da OrderedDict
L'eliminazione dei valori da OrderDict non modifica l'ordine delle chiavi. Se eliminiamo una chiave particolare e la reinseriamo, verrà aggiunta alla fine. Vediamone un esempio. Cancelleremo la chiave "età" dal dizionario dello studente e poi la reinseriremo.
#importando il modulo collezioniimportare collezioni
#creazione di un OrdinatoDitto dello studente
std_dict = collezioni.OrdinatoDict()
std_dict['name']='John'
std_dict['età']=23
std_dict['email']='[email protetta]'
std_dict['class']='BS'
print("L'ordine delle chiavi prima di modificare il valore dell'età:")
#dichiarare un ciclo for per scorrere l'OrderDict
per io in std_dict.elementi():
stampa(i)
#eliminare la chiave dell'età
del std_dict['età']
print("L'ordine delle chiavi dopo l'eliminazione della chiave di età:")
per io in std_dict.elementi():
stampa(i)
#reinserire la chiave e il valore dell'età
std_dict['età']=23
print("L'ordine delle chiavi dopo aver reinserito la chiave di età:")
per io in std_dict.elementi():
stampa(i)
Produzione
Nell'output, si può vedere che quando reinseriamo una chiave, viene inserita alla fine.
Conclusione
OrderedDict è la sottoclasse di dict che dispone le chiavi in sequenza e conserva l'ordine man mano che vengono inserite. La classe OrderedDict fa parte del modulo delle collezioni. Questo articolo spiega OrderedDict e le sue funzionalità con esempi.