UN OrdinatoDict è una sottoclasse del dizionario che ricorda l'ordine in cui le chiavi sono state inserite per la prima volta. L'unica differenza tra detta() e OrderedDict() risiede nella gestione dell'ordine delle chiavi Pitone .
svuotare la cache npm
OrderedDict vs dict in Python
'OrderedDict' mantiene la sequenza in cui vengono aggiunte le chiavi, garantendo che l'ordine venga preservato durante l'iterazione. Al contrario, un dizionario standard non garantisce alcun ordine specifico durante l'iterazione, fornendo valori in una sequenza arbitraria. 'OrderedDict' si distingue mantenendo l'ordine di inserimento originale degli elementi.
Esempio: In questo esempio, il codice seguente dimostra la differenza tra un dizionario normale (`dict`) e un dizionario ordinato (`OrderedDict`). Per prima cosa stampa gli elementi in un normale dizionario (`d`) dove l'ordine di inserimento non è garantito.
Pitone # A Python program to demonstrate working of OrderedDict from collections import OrderedDict print('This is a Dict:
') d = {} d['a'] = 1 d['b'] = 2 d['c'] = 3 d['d'] = 4 for key, value in d.items(): print(key, value) print('
This is an Ordered Dict:
') od = OrderedDict() od['a'] = 1 od['b'] = 2 od['c'] = 3 od['d'] = 4 for key, value in od.items(): print(key, value)> Produzione:
This is a Dict: a 1 b 2 c 3 d 4 This is an Ordered Dict: a 1 b 2 c 3 d 4>
Dizionario Python ordinato
Ci sono vari punti importanti relativi all'ordinamento del dizionario Python qui, stiamo discutendo alcuni punti importanti relativi Dizionario Python ordinando quelli che seguono.
- Modifica del valore chiave
- Cancellazione e reinserimento
- Confronto di uguaglianza
- Inversione ordinata dict
- Articolo ordinatoDict Popitem per ultimo
- Inserimento chiave in posizione arbitraria
- Modulo Collezioni
Valore chiave Modifica nell'ordine del dizionario Python
Se il valore di una determinata chiave viene modificato, la posizione della chiave rimane invariata in OrderedDict. questo metodo Python dimostra la modifica del valore associato a una chiave in OrderedDict.
Esempio : In questo esempio il codice Python seguente utilizza OrderedDict per dimostrare la modifica del valore associato a una chiave specifica. Inizialmente, crea un OrderedDict con le chiavi da 'a' a 'd' e rispettivi valori da 1 a 4.
Pitone # A Python program to demonstrate working of key # value change in OrderedDict from collections import OrderedDict print('Before:
') od = OrderedDict() od['a'] = 1 od['b'] = 2 od['c'] = 3 od['d'] = 4 for key, value in od.items(): print(key, value) print('
After:
') od['c'] = 5 for key, value in od.items(): print(key, value)> Produzione:
Before: a 1 b 2 c 3 d 4 After: a 1 b 2 c 5 d 4>
Confronto di uguaglianza in Python Ordine del dizionario
OrderedDicts in Python può essere confrontato per l'uguaglianza non solo in base al contenuto ma anche considerando l'ordine di inserimento. Ciò è utile quando si confrontano due OrderedDicts per entrambe le coppie chiave-valore e il relativo ordine.
Esempio: in questo esempio il codice crea due OrderedDicts, 'od1' e 'od2', con ordinamenti diversi di coppie chiave-valore. Dimostra quindi che l'ordine di inserimento viene considerato quando si confronta l'uguaglianza utilizzando l'operatore '==', risultando in 'False'.
Pitone from collections import OrderedDict # Create two ordered dictionaries with different orderings od1 = OrderedDict([('a', 1), ('b', 2), ('c', 3)]) od2 = OrderedDict([('c', 3), ('b', 2), ('a', 1)]) # Compare the ordered dictionaries for equality print(od1 == od2)> Produzione :
False>
Inversione ordinata dict nell'ordine del dizionario Python
Dopo aver creato un OrderedDict, il filereverse>viene applicato il metodo che inverte l'ordine delle coppie chiave-valore. Il ciclo successivo stampa gli elementi in ordine inverso, evidenziando la capacità di OrderedDict di facilitare le operazioni di inversione. OrderedDicts può essere invertito utilizzando il comandoreverse>metodo. Ciò inverte l'ordine delle coppie chiave-valore nel dizionario.
Esempio : In questo esempio il codice seguente utilizza un OrderedDict e inverte le sue coppie chiave-valore utilizzando il metodo 'reverse'. Il ciclo successivo stampa gli elementi in ordine inverso, ottenendo come risultato: 'c 3, b 2, a 1'.
Pitone from collections import OrderedDict my_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3)]) my_dict.reverse() for key, value in my_dict.items(): print(key, value)> Produzione :
c 3, b 2, a 1>
OrderedDict Popitem() e Ordine del dizionario Python
IL popitem()>metodo in OrderedDict può essere utilizzato con il filelast>parametro per rimuovere e restituire l'ultima coppia chiave-valore inserita. Ciò è utile quando si desidera elaborare gli articoli in modalità last-in, first-out. L'uso di `popitem(last=True)` su un OrderedDict rimuoverebbe e restituirebbe l'elemento aggiunto più di recente, fornendo flessibilità nella gestione dell'ordine degli elementi.
Esempio : In questo esempio il codice seguente utilizza un OrderedDict e applica il metodo 'popitem' con 'last=True' per rimuovere e memorizzare l'ultima coppia chiave-valore inserita. Quindi stampa l'elemento rimosso, ottenendo l'output: `('c', 3)`.
Pitone from collections import OrderedDict my_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3)]) last_item = my_dict.popitem(last=True) print(last_item)> Produzione :
('c', 3)>Inserimento chiave in posizione arbitraria In Dizionario Python ordinato
OrderedDict consente di inserire una nuova chiave in una posizione specifica utilizzando il comandomove_to_end>Emove_to_start>metodi. Questa flessibilità consente il riordino dinamico delle chiavi in base all'utilizzo o alla priorità .
Esempio : In questo esempio il codice Python seguente utilizza OrderedDict per creare un dizionario con coppie chiave-valore ordinate. Quindi utilizza il metodo 'move_to_end' per riposizionare la chiave 'a' alla fine e la chiave 'b' all'inizio.
Pitone from collections import OrderedDict my_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3)]) # Move key 'a' to the end my_dict.move_to_end('a') # Move key 'b' to the beginning my_dict.move_to_end('b', last=False) for key, value in my_dict.items(): print(key, value)> Produzione :
b 2, c 3, a 1>
Eliminazione e reinserimento in Dizionario Python ordinato
L'eliminazione e il reinserimento della stessa chiave la spingeranno indietro poiché OrderedDict, tuttavia, mantiene l'ordine di inserimento. Questo metodo mostra le operazioni di eliminazione e reinserimento in un Python OrderedDict. Inizialmente, popola OrderedDict con coppie chiave-valore, elimina una voce, stampa l'OrderedDict aggiornato e successivamente reinserisce la voce eliminata, dimostrando la natura ordinata del dizionario.
Esempio : In questo esempio il codice Python seguente mostra l'eliminazione, il reinserimento e la stampa di elementi in OrderedDict. Prima stampa gli elementi OrderedDict, quindi elimina la voce con la chiave 'c', stampa l'OrderedDict aggiornato e infine reinserisce 'c' con il suo valore, stampando nuovamente OrderedDict.
Pitone # A Python program to demonstrate working of deletion # re-insertion in OrderedDict from collections import OrderedDict print('Before deleting:
') od = OrderedDict() od['a'] = 1 od['b'] = 2 od['c'] = 3 od['d'] = 4 for key, value in od.items(): print(key, value) print('
After deleting:
') od.pop('c') for key, value in od.items(): print(key, value) print('
After re-inserting:
') od['c'] = 3 for key, value in od.items(): print(key, value)> Produzione:
25 di 100
Before deleting: a 1 b 2 c 3 d 4 After deleting: a 1 b 2 d 4 After re-inserting: a 1 b 2 d 4 c 3>
Modulo Collezioni in Python Ordine del dizionario
OrderedDict fa parte di modulo collezioni in Pitone. Fornisce tutti i metodi e le funzionalità di un normale dizionario, oltre ad alcuni metodi aggiuntivi che sfruttano l'ordinamento degli elementi. Ecco alcuni esempi di utilizzo di OrderedDict in Python:
Esempio : In questo esempio il codice seguente utilizza OrderedDict per creare un dizionario con coppie chiave-valore ordinate. Aggiunge un nuovo elemento 'd' alla fine e inserisce gli elementi 'e' ed 'f' all'inizio, con 'e' spostato in primo piano. Il ciclo finale stampa gli elementi del dizionario nell'ordine in cui sono stati aggiunti.
Pitone from collections import OrderedDict # Create an ordered dictionary of key-value pairs my_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3)]) # Add a new item to the end of the dictionary my_dict['d'] = 4 # Add a new item at a specific position in the dictionary # my_dict.update({'e': 5, 'f': 6}) or below my_dict.update([('e', 5), ('f', 6)]) my_dict.move_to_end('e', last=False) # Iterate over the dictionary in the order in which items were added for key, value in my_dict.items(): print(key, value)> Produzione:
e 5 a 1 b 2 c 3 d 4 f 6>
Complessità temporale:
- Ottieni oggetto (chiave): O(1)
- Imposta elemento (chiave, valore): O(1)
- Elimina elemento (chiave): SU)
- Iterazione: SU)
Complessità spaziale: SU)
OrderedDict è una sottoclasse del dizionario in Python che ricorda l'ordine in cui sono stati aggiunti gli elementi. In un normale dizionario Python, l'ordine degli elementi non è garantito e potrebbe cambiare tra diverse esecuzioni del programma o diverse versioni di Python. Tuttavia, un OrderedDict conserva l'ordine degli elementi così come sono stati aggiunti, anche se successivamente vengono aggiunti nuovi elementi o gli elementi esistenti vengono modificati.
altre considerazioni
- Il dict ordinato in Python versione 2.7 consuma più memoria del dict normale. Ciò è dovuto all'implementazione sottostante della Doubly Linked List per mantenere l'ordine. In Python 2.7 Ordered Dict non è una sottoclasse dict, è un contenitore specializzato del modulo Collections.
- A partire da Python 3.7 l'ordine di inserimento dei dizionari Python è garantito.
- Ordered Dict può essere utilizzato come stack con l'aiuto di io bevo funzione. Prova a implementare la cache LRU con Ordered Dict.