Jakiś ZamówiłemDict to podklasa słownika, która pamięta kolejność, w jakiej klucze były wstawiane po raz pierwszy. Jedyna różnica pomiędzy dykt() i OrderedDict() polega na obsłudze kolejności kluczy Pyton .
OrderedDict vs dict w Pythonie
„OrderedDict” utrzymuje kolejność dodawania kluczy, zapewniając zachowanie kolejności podczas iteracji. Natomiast standardowy słownik nie gwarantuje żadnej określonej kolejności podczas iteracji, dostarczając wartości w dowolnej kolejności. „OrderedDict” wyróżnia się zachowaniem oryginalnej kolejności wstawiania pozycji.
Przykład: W tym przykładzie poniższy kod demonstruje różnicę między zwykłym słownikiem („dict”) a słownikiem uporządkowanym („OrderedDict”). Najpierw wypisuje elementy ze zwykłego słownika (`d`), w którym kolejność wstawiania nie jest gwarantowana.
Pyton # 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)> Wyjście:
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>
Zamówiony słownik Pythona
Jest tu wiele ważnych kwestii związanych z zamawianiem słownika Pythona, my omawiamy kilka ważnych kwestii z nimi związanych Słownik Pythona zamawianie, które są następujące.
- Wartość klucza Zmień
- Usuwanie i ponowne wstawianie
- Porównanie równości
- Zamówiłem odwrócenie Dict
- ZamówiłemDict Popitem jako ostatni
- Wstawienie klucza w dowolnej pozycji
- Moduł Kolekcje
Wartość klucza Zmiana kolejności słownika języka Python
Jeśli wartość określonego klucza zostanie zmieniona, pozycja klucza pozostanie niezmieniona w OrderedDict. ta metoda języka Python demonstruje zmianę wartości powiązanej z kluczem w OrderedDict.
Przykład : W tym przykładzie poniższy kod Pythona używa OrderedDict, aby zademonstrować zmianę wartości powiązanej z określonym kluczem. Początkowo tworzy OrderedDict z kluczami od „a” do „d” i odpowiednimi wartościami od 1 do 4.
Pyton # 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)> Wyjście:
Before: a 1 b 2 c 3 d 4 After: a 1 b 2 c 5 d 4>
Porównanie równości w Pythonie Kolejność słownika
OrderedDicts w Pythonie można porównywać pod kątem równości nie tylko na podstawie ich zawartości, ale także biorąc pod uwagę kolejność wstawiania. Jest to przydatne podczas porównywania dwóch OrderedDicts dla obu par klucz-wartość i ich kolejności.
Przykład: w tym przykładzie kod tworzy dwa OrderedDicts, „od1” i „od2”, z różną kolejnością par klucz-wartość. Następnie pokazuje, że kolejność wstawiania jest brana pod uwagę przy porównywaniu ich pod kątem równości przy użyciu operatora „==”, co daje wynik „Fałsz”.
Pyton 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)> Wyjście :
False>
Zamówiłem odwrócenie Dict w kolejności słownika Pythona
Po utworzeniu OrderedDict plikreverse>stosowana jest metoda, która odwraca kolejność par klucz-wartość. Kolejna pętla drukuje elementy w odwrotnej kolejności, podkreślając zdolność OrderedDict do ułatwiania operacji odwracania. OrderedDicts można odwrócić za pomocąreverse>metoda. Spowoduje to odwrócenie kolejności par klucz-wartość w słowniku.
Przykład : W tym przykładzie poniższy kod wykorzystuje OrderedDict i odwraca pary klucz-wartość przy użyciu metody „reverse”. Następna pętla drukuje elementy w odwrotnej kolejności, co daje wynik: `c 3, b 2, a 1`.
Pyton 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)> Wyjście :
c 3, b 2, a 1>
ZamówiłemDict Popitem() i Kolejność słownika Pythona
The popitem()>metoda w OrderedDict można używać zlast>parametr do usunięcia i zwrócenia ostatnio wstawionej pary klucz-wartość. Jest to przydatne, gdy chcesz przetwarzać elementy w sposób „ostatnie weszło, pierwsze wyszło”. Użycie `popitem(last=True)` w OrderedDict spowoduje usunięcie i zwrócenie ostatnio dodanego elementu, zapewniając elastyczność w zarządzaniu kolejnością elementów.
Przykład : W tym przykładzie poniższy kod wykorzystuje OrderedDict i stosuje metodę `popitem` z `last=True` w celu usunięcia i zapisania ostatnio wstawionej pary klucz-wartość. Następnie drukuje usunięty element, co daje wynik: `('c', 3)`.
Pyton from collections import OrderedDict my_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3)]) last_item = my_dict.popitem(last=True) print(last_item)> Wyjście :
('c', 3)>Wstawienie klucza w dowolnej pozycji W Zamówiony słownik Pythona
OrderedDict umożliwia wstawienie nowego klucza w określonym miejscu za pomocąmove_to_end>Imove_to_start>metody. Ta elastyczność umożliwia dynamiczną zmianę kolejności kluczy w oparciu o wykorzystanie lub priorytet .
Przykład : W tym przykładzie poniższy kod Pythona używa OrderedDict do utworzenia słownika z uporządkowanymi parami klucz-wartość. Następnie wykorzystuje metodę „move_to_end”, aby przenieść klawisz „a” na koniec i klawisz „b” na początek.
Pyton 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)> Wyjście :
b 2, c 3, a 1>
Usuwanie i ponowne wstawianie Zamówiony słownik Pythona
Usunięcie i ponowne włożenie tego samego klucza spowoduje przesunięcie go do tyłu w kolejności OrderedDict, jednak zachowuje kolejność wstawiania. Ta metoda przedstawia operacje usuwania i ponownego wstawiania w Python OrderedDict. Początkowo wypełnia OrderedDict parami klucz-wartość, usuwa wpis, drukuje zaktualizowany OrderedDict, a następnie ponownie wstawia usunięty wpis, demonstrując uporządkowany charakter słownika.
Przykład : W tym przykładzie poniższy kod Pythona demonstruje usuwanie, ponowne wstawianie i drukowanie elementów w OrderedDict. Najpierw wypisuje elementy OrderedDict, następnie usuwa wpis z kluczem „c”, drukuje zaktualizowany OrderedDict, a na koniec ponownie wstawia „c” ze swoją wartością, ponownie drukując OrderedDict.
Pyton # 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)> Wyjście:
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>
Moduł Kolekcje w Pythonie Kolejność słownika
OrderedDict jest częścią moduł kolekcji w Pythonie. Zapewnia wszystkie metody i funkcjonalność zwykłego słownika, a także kilka dodatkowych metod, które korzystają z porządkowania elementów. Oto kilka przykładów użycia OrderedDict w Pythonie:
tablica posortowana w Javie
Przykład : W tym przykładzie poniższy kod używa OrderedDict do utworzenia słownika z uporządkowanymi parami klucz-wartość. Dodaje nowy element „d” na końcu i wstawia elementy „e” i „f” na początku, przy czym „e” jest przesuwane na początek. Ostatnia pętla drukuje elementy słownika w kolejności, w jakiej zostały dodane.
Pyton 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)> Wyjście:
e 5 a 1 b 2 c 3 d 4 f 6>
Złożoność czasowa:
- Zdobądź przedmiot (klucz): O(1)
- Ustaw element (klucz, wartość): O(1)
- Usuń element (klucz): NA)
- Iteracja: NA)
Złożoność przestrzeni: NA)
OrderedDict to podklasa słownika w Pythonie, która zapamiętuje kolejność dodawania elementów. W zwykłym słowniku Pythona kolejność elementów nie jest gwarantowana i może się zmieniać pomiędzy różnymi uruchomieniami programu lub różnymi wersjami Pythona. Jednak OrderedDict zachowuje kolejność dodanych elementów, nawet jeśli później zostaną dodane nowe elementy lub zmienione zostaną istniejące elementy.
Inne rozważania
- Uporządkowany dykt w Pythonie w wersji 2.7 zużywa więcej pamięci niż normalny dykt. Wynika to z podstawowej implementacji listy podwójnie połączonej służącej do utrzymywania porządku. W Pythonie 2.7 Ordered Dict nie jest podklasą dict, jest to wyspecjalizowany kontener z modułu kolekcji.
- Począwszy od wersji Python 3.7, gwarantowana jest kolejność wstawiania słowników Pythona.
- Zamówiony Dict może być używany jako stos za pomocą piję funkcjonować. Spróbuj zaimplementować pamięć podręczną LRU za pomocą Ordered Dict.