En OrderedDict är en ordboksunderklass som kommer ihåg ordningen i vilken nycklar först infogades. Den enda skillnaden mellan dikt() och OrderedDict() ligger i deras hantering av nyckelorder i Pytonorm .
OrderedDict vs dict i Python
`OrderedDict` bibehåller sekvensen i vilken nycklar läggs till, vilket säkerställer att ordningen bevaras under iterationen. Däremot garanterar inte en standardordbok någon specifik ordning när den itereras, och tillhandahåller värden i en godtycklig sekvens. `OrderedDict` utmärker sig genom att behålla den ursprungliga insättningsordningen för objekt.
Exempel: I det här exemplet visar koden nedan skillnaden mellan en vanlig ordbok ('dict') och en ordnad ordbok ('OrderedDict'). Det skrivs först ut objekten i en vanlig ordbok (`d`) där ordningen för infogning inte är garanterad.
Pytonorm # 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)> Produktion:
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>
Python ordbok beställd
Det finns olika viktiga punkter relaterade till ordnande av python-ordbok här, vi diskuterar några viktiga punkter relaterade till Python ordbok beställer att de följer.
konvertera int till sträng
- Nyckelvärde Ändring
- Radering och återinsättning
- Jämställdhetsjämförelse
- OrderedDict Reversal
- Beställd dikt popitem sist
- Nyckelinsättning vid godtycklig position
- Insamlingsmodul
Nyckelvärde Ändring i Python Dictionary Order
Om värdet på en viss nyckel ändras, förblir nyckelns position oförändrad i OrderedDict. Denna Python-metod visar att värdet som är associerat med en nyckel i en OrderedDict ändras.
Exempel: I det här exemplet använder Python-koden nedan en OrderedDict för att visa att värdet som är associerat med en specifik nyckel ändras. Inledningsvis skapar den ett OrderedDict med tangenterna 'a' till 'd' och respektive värden 1 till 4.
Pytonorm # 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)> Produktion:
Before: a 1 b 2 c 3 d 4 After: a 1 b 2 c 5 d 4>
Jämställdhetsjämförelse i Python Ordboksordning
OrderedDicts i Python kan jämföras för jämlikhet inte bara baserat på deras innehåll utan också med tanke på ordningen för insättning. Detta är användbart när man jämför två OrderedDicts för både nyckel-värdepar och deras ordning.
Exempel : I det här exemplet skapar koden två OrderedDicts, `od1` och `od2`, med olika ordningsföljder av nyckel-värdepar. Det visar sedan att insättningsordningen beaktas när man jämför dem för likhet med operatorn `==`, vilket resulterar i `False`.
Pytonorm 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)> Utgång:
False>
OrderedDict Reversal i Python Dictionary Order
Efter att ha skapat ett OrderedDict,reverse>metod används, vilket vänder ordningen på nyckel-värdepar. Den efterföljande slingan skriver ut objekten i omvänd ordning, vilket framhäver OrderedDicts förmåga att underlätta återföringsoperationer. OrderedDicts kan vändas med hjälp avreverse>metod. Detta omvänder ordningen för nyckel-värdepar i ordboken.
Exempel: I det här exemplet använder koden nedan en OrderedDict och vänder dess nyckel-värdepar med 'omvänd'-metoden. Den efterföljande slingan skriver ut objekten i omvänd ordning, vilket resulterar i utdata: `c 3, b 2, a 1`.
java visualizerPytonorm
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)> Utgång:
c 3, b 2, a 1>
OrderedDict Popitem() och Python ordboksordning
De popitem()>metod i OrderedDict kan användas medlast>parameter för att ta bort och returnera det senast infogade nyckel-värdeparet. Detta är användbart när du vill bearbeta objekt på ett sist-in-först-ut-sätt. Att använda `popitem(last=True)` på ett OrderedDict skulle ta bort och returnera det senast tillagda objektet, vilket ger flexibilitet i att hantera ordningen på elementen.
Exempel: I det här exemplet använder koden nedan en OrderedDict och tillämpar `popitem`-metoden med `last=True` för att ta bort och lagra det senast infogade nyckel-värdeparet. Den skriver sedan ut det borttagna objektet, vilket resulterar i utdata: `('c', 3)`.
Pytonorm from collections import OrderedDict my_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3)]) last_item = my_dict.popitem(last=True) print(last_item)> Utgång:
('c', 3)>Nyckelinsättning vid godtycklig position i Python ordbok beställd
OrderedDict tillåter att sätta in en ny nyckel på en specifik position med hjälp avmove_to_end>ochmove_to_start>metoder. Denna flexibilitet tillåter dynamisk omordning av nycklar baserat på användning eller prioritet .
Exempel: I det här exemplet använder Python-koden nedan en OrderedDict för att skapa en ordbok med ordnade nyckel-värdepar. Den använder sedan metoden 'move_to_end' för att flytta nyckel 'a' till slutet och tangent 'b' till början.
Pytonorm 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)> Utgång:
b 2, c 3, a 1>
Radering och återinsättning i Python Dictionary beställd
Om du tar bort och sätter in samma nyckel igen kommer den att skjutas bakåt eftersom OrderedDict, dock bibehåller ordningen för insättningen. Denna metod visar raderings- och återinsättningsoperationer i en Python OrderedDict. Inledningsvis fyller den OrderedDict med nyckel-värdepar, tar bort en post, skriver ut den uppdaterade OrderedDict och infogar sedan den raderade posten igen, vilket visar ordbokens ordnade karaktär.
visa användare mysql
Exempel: I det här exemplet visar pythonkoden nedan radering, återinsättning och utskrift av objekt i ett OrderedDict. Den skriver först ut OrderedDict-objekten, raderar sedan posten med tangenten 'c', skriver ut den uppdaterade OrderedDict och infogar slutligen igen 'c' med dess värde och skriver ut OrderedDict igen.
Pytonorm # 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)> Produktion:
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>
Samlingsmodul i Python Ordboksordning
OrderedDict är en del av samlingsmodul i Python. Den tillhandahåller alla metoder och funktionalitet för en vanlig ordbok, samt några ytterligare metoder som drar fördel av beställningen av objekten. Här är några exempel på hur du använder OrderedDict i Python:
Exempel: I det här exemplet använder koden nedan en OrderedDict för att skapa en ordbok med ordnade nyckel-värdepar. Den lägger till ett nytt objekt 'd' i slutet och infogar objekt 'e' och 'f' i början, med 'e' flyttas fram. Den sista slingan skriver ut ordboksobjekten i den ordning de lades till.
Pytonorm 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)> Produktion:
e 5 a 1 b 2 c 3 d 4 f 6>
Tidskomplexitet:
- Hämta objekt (nyckel): O(1)
- Ange objekt (nyckel, värde): O(1)
- Ta bort objekt (nyckel): På)
- Iteration: På)
Utrymmes komplexitet: På)
java filterström
OrderedDict är en ordboksunderklass i Python som kommer ihåg i vilken ordning objekten lades till. I en vanlig Python-ordbok är ordningen på objekten inte garanterad, och den kan ändras mellan olika körningar av programmet eller olika versioner av Python. Ett OrderedDict bevarar dock ordningen på objekten när de lades till, även om nya artiklar senare läggs till eller befintliga artiklar ändras.
Andra överväganden
- Beställd dict i Python version 2.7 förbrukar mer minne än normal dict. Detta beror på den underliggande implementeringen av dubbellänkad lista för att hålla ordningen. I Python 2.7 är Ordered Dict inte dict-underklass, det är en specialiserad behållare från samlingsmodulen.
- Från och med Python 3.7 är insättningsordning för Python-ordböcker garanterad.
- Beställd Dict kan användas som en stack med hjälp av jag dricker fungera. Prova att implementera LRU-cache med Ordered Dict.