An TilattuDict on sanakirjan alaluokka, joka muistaa järjestyksen, jossa avaimet lisättiin ensimmäisen kerran. Ainoa ero sanella () ja OrderedDict() ovat heidän avainjärjestyksensä käsittelyssä Python .
OrderedDict vs dict Pythonissa
'OrderedDict' ylläpitää järjestystä, jossa avaimet lisätään, ja varmistaa, että järjestys säilyy iteroinnin aikana. Sitä vastoin vakiosanakirja ei takaa tiettyä järjestystä iteroitaessa, vaan se tarjoaa arvot mielivaltaisessa järjestyksessä. 'OrderedDict' erottuu siitä, että se säilyttää kohteiden alkuperäisen lisäysjärjestyksen.
Esimerkki: Tässä esimerkissä alla oleva koodi osoittaa eron tavallisen sanakirjan (`dict`) ja järjestetyn sanakirjan (`OrderedDict`) välillä. Se tulostaa ensin kohteet tavallisessa sanakirjassa (`d`), jossa lisäysjärjestystä ei taata.
Python
# 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)> Lähtö:
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-sanakirja tilattu
Täällä on useita tärkeitä python-sanakirjan järjestämiseen liittyviä asioita, keskustelemme joistakin tärkeistä asioista, jotka liittyvät Python-sanakirja seuraavien tilaaminen.
int merkkijono
- Avainarvo Muutos
- Poistaminen ja lisääminen uudelleen
- Tasa-arvon vertailu
- Tilattu Dict Reversal
- TilattuDict Popitem Last
- Avaimen syöttö mielivaltaiseen asentoon
- Kokoelmat moduuli
Avainarvo Python-sanakirjajärjestyksen muutos
Jos tietyn avaimen arvoa muutetaan, avaimen sijainti ei muutu OrderedDictissä. Tämä Python-menetelmä näyttää avaimeen liittyvän arvon muuttamisen OrderedDictissä.
Esimerkki: Tässä esimerkissä alla oleva Python-koodi käyttää OrderedDictiä osoittamaan tiettyyn avaimeen liittyvän arvon muuttamisen. Aluksi se luo OrderedDictin avaimilla 'a' - 'd' ja vastaavilla arvoilla 1 - 4.
java localdatetimePython
# 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)> Lähtö:
Before: a 1 b 2 c 3 d 4 After: a 1 b 2 c 5 d 4>
Tasa-arvon vertailu Pythonissa Sanakirjan järjestys
Pythonin OrderedDicts-tiedostoja voidaan verrata tasa-arvoisesti paitsi niiden sisällön perusteella, myös lisäysjärjestyksen perusteella. Tästä on hyötyä, kun verrataan kahta OrderedDictiä molempien avainarvoparien ja niiden järjestyksen osalta.
Esimerkki : Tässä esimerkissä koodi luo kaksi OrderedDictiä, 'od1' ja 'od2', joilla on erilaiset avain-arvoparien järjestykset. Sitten se osoittaa, että lisäysjärjestys otetaan huomioon, kun niitä verrataan tasa-arvoon käyttämällä `==`-operaattoria, mikä johtaa `False`.
Python 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)> Lähtö:
False>
Tilattu Dict Reversal Python-sanakirjajärjestyksessä
Kun olet luonut OrderedDictin,reverse>menetelmää, joka kääntää avainarvo-parien järjestyksen. Seuraava silmukka tulostaa kohteet käänteisessä järjestyksessä korostaen OrderedDictin kykyä helpottaa kääntötoimintoja. OrderedDicts voidaan peruuttaa käyttämälläreverse>menetelmä. Tämä kääntää avain-arvo-parien järjestyksen sanakirjassa.
1/1000
Esimerkki: Tässä esimerkissä alla oleva koodi käyttää OrderedDictiä ja kääntää avainarvoparinsa käänteisellä menetelmällä. Seuraava silmukka tulostaa kohteet käänteisessä järjestyksessä, jolloin tulos on: `c 3, b 2, a 1`.
Python 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)> Lähtö:
c 3, b 2, a 1>
TilattuDict Popitem() and Python-sanakirjajärjestys
The popitem()>menetelmä OrderedDictissä voidaan käyttäälast>parametri poistaa ja palauttaa viimeksi lisätyn avain-arvo-parin. Tämä on hyödyllistä, kun haluat käsitellä kohteet viimeinen sisään, ensimmäinen ulos -tavalla. Kohteen 'popitem(last=True)' käyttäminen OrderedDictissä poistaisi ja palauttaisi viimeksi lisätyn kohteen, mikä tarjoaa joustavuutta elementtien järjestyksen hallinnassa.
Esimerkki: Tässä esimerkissä alla oleva koodi käyttää OrderedDictiä ja käyttää 'popitem'-metodia 'last=True' poistaakseen ja tallentaakseen viimeksi lisätyn avainarvoparin. Sitten se tulostaa poistetun kohteen, jolloin tulos on: `('c', 3)'.
Python from collections import OrderedDict my_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3)]) last_item = my_dict.popitem(last=True) print(last_item)> Lähtö:
poista viimeinen commit git
('c', 3)>Avaimen syöttö mielivaltaiseen asentoon sisään Python-sanakirja tilattu
OrderedDict mahdollistaa uuden avaimen lisäämisen tiettyyn kohtaan käyttämällämove_to_end>jamove_to_start>menetelmiä. Tämä joustavuus mahdollistaa avainten dynaamisen uudelleenjärjestelyn käytön tai prioriteetin mukaan .
Esimerkki: Tässä esimerkissä alla oleva Python-koodi käyttää OrderedDictiä sanakirjan luomiseen järjestetyillä avainarvopareilla. Sen jälkeen se käyttää 'move_to_end' -menetelmää siirtämään avaimen 'a' loppuun ja avaimen 'b' alkuun.
Python 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)> Lähtö:
b 2, c 3, a 1>
Poistaminen ja lisääminen uudelleen Python-sanakirja tilattu
Saman avaimen poistaminen ja lisääminen uudelleen työntää sen taakse, koska OrderedDict säilyttää lisäysjärjestyksen. Tämä menetelmä esittelee poisto- ja uudelleenlisäystoiminnot Python OrderedDictissä. Aluksi se täyttää OrderedDictin avainarvopareilla, poistaa merkinnän, tulostaa päivitetyn OrderedDictin ja lisää sen jälkeen poistetun merkinnän uudelleen, mikä osoittaa sanakirjan järjestetyn luonteen.
Esimerkki: Tässä esimerkissä alla oleva python-koodi näyttää kohteiden poistamisen, lisäämisen ja tulostamisen OrderedDictissä. Se tulostaa ensin OrderedDict-kohteet, poistaa sitten merkinnän avaimella 'c', tulostaa päivitetyn OrderedDictin ja lisää lopuksi uudelleen 'c':n arvoineen tulostaen OrderedDictin uudelleen.
tiikeri verrattuna leijonaanPython
# 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)> Lähtö:
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>
Kokoelmat-moduuli Pythonissa Sanakirjan järjestys
OrderedDict on osa kokoelmat moduuli Pythonissa. Se tarjoaa kaikki tavallisen sanakirjan menetelmät ja toiminnot sekä joitain lisämenetelmiä, jotka hyödyntävät kohteiden järjestystä. Tässä on esimerkkejä OrderedDictin käytöstä Pythonissa:
Esimerkki: Tässä esimerkissä alla oleva koodi käyttää OrderedDictiä sanakirjan luomiseen järjestetyillä avainarvopareilla. Se lisää uuden kohdan 'd' loppuun ja lisää kohteet 'e' ja 'f' alkuun, jolloin 'e' siirretään eteen. Viimeinen silmukka tulostaa sanakirjan kohteet niiden lisäysjärjestyksessä.
Python 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)> Lähtö:
e 5 a 1 b 2 c 3 d 4 f 6>
Aika monimutkaisuus:
- Hanki tuote (avain): O(1)
- Aseta kohde (avain, arvo): O(1)
- Poista kohde(avain): Päällä)
- Iterointi: Päällä)
Tilan monimutkaisuus: Päällä)
OrderedDict on Pythonin sanakirjan alaluokka, joka muistaa kohteiden lisäysjärjestyksen. Tavallisessa Python-sanakirjassa kohteiden järjestystä ei taata, ja se voi vaihdella ohjelman eri ajojen tai Python-versioiden välillä. OrderedDict säilyttää kuitenkin kohteiden järjestyksen sellaisena kuin ne on lisätty, vaikka uusia kohteita lisättäisiin myöhemmin tai olemassa olevia kohteita muutetaan.
Muut näkökohdat
- Python-versiossa 2.7 tilattu dict kuluttaa enemmän muistia kuin tavallinen sanelu. Tämä johtuu taustalla olevasta Doublely Linked List -toteutuksesta tilauksen säilyttämiseksi. Python 2.7:ssä Ordered Dict ei ole sanelualaluokka, se on kokoelmamoduulin erikoissäilö.
- Python-sanakirjojen lisäysjärjestys on taattu Python 3.7:stä alkaen.
- Tilattua Dictiä voidaan käyttää pinona juon toiminto. Kokeile ottaa LRU-välimuisti käyttöön Ordered Dictillä.