logo

Python의 OrderedDict

OrderedDict 키가 처음 삽입된 순서를 기억하는 사전 하위 클래스입니다. 유일한 차이점은 사전() OrderedDict()는 키 순서를 처리하는 데 있습니다. 파이썬 .

OrderedDict와 Python의 dict

'OrderedDict'는 키가 추가되는 순서를 유지하여 반복 중에 순서가 유지되도록 합니다. 대조적으로, 표준 사전은 반복 시 특정 순서를 보장하지 않으며 임의의 순서로 값을 제공합니다. OrderedDict는 항목의 원래 삽입 순서를 유지하여 차별화됩니다.



예: 이 예에서 아래 코드는 일반 사전(`dict`)과 순서가 지정된 사전(`OrderedDict`) 간의 차이점을 보여줍니다. 먼저 삽입 순서가 보장되지 않는 일반 사전(`d`)의 항목을 인쇄합니다.

지도 타이프스크립트
파이썬
# 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)>

산출:

  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 사전 주문됨

여기에는 Python 사전 순서 지정과 관련된 다양한 중요한 사항이 있으며, 다음과 관련된 몇 가지 중요한 사항을 논의하고 있습니다. 파이썬 사전 주문하는 방법은 다음과 같습니다.



  1. 키값 변경
  2. 삭제 및 재삽입
  3. 평등 비교
  4. OrderedDict 반전
  5. OrderedDict Popitem 마지막
  6. 임의의 위치에 키 삽입
  7. 컬렉션 모듈

Python 사전 순서의 키 값 변경

특정 키의 값이 변경되면 OrderedDict에서는 해당 키의 위치가 변경되지 않습니다. 이 Python 메서드는 OrderedDict의 키와 연결된 값을 변경하는 방법을 보여줍니다.

예 : 이 예에서 아래 Python 코드는 OrderedDict를 사용하여 특정 키와 연결된 값을 변경하는 방법을 보여줍니다. 처음에는 'a'부터 'd'까지의 키와 1부터 4까지의 각 값을 사용하여 OrderedDict를 생성합니다.

파이썬
# 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)>

산출:



런타임 에러
  Before:  a 1 b 2 c 3 d 4   After:  a 1 b 2 c 5 d 4>

Python의 평등 비교 사전 순서

Python의 OrderedDicts는 내용뿐만 아니라 삽입 순서도 고려하여 동일한지 비교할 수 있습니다. 이는 키-값 쌍과 해당 순서에 대해 두 OrderedDict를 비교할 때 유용합니다.

예: 이 예에서 코드는 키-값 쌍의 순서가 서로 다른 두 개의 OrderedDicts `od1` 및 `od2`를 생성합니다. 그런 다음 '==' 연산자를 사용하여 삽입 순서가 동일한지 비교할 때 'False' 결과가 나오는 것을 보여줍니다.

파이썬
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)>

출력 :

False>

OrderedDict 반전 Python 사전 순서로

OrderedDict를 생성한 후,reverse>키-값 쌍의 순서를 바꾸는 방법이 적용됩니다. 후속 루프는 항목을 역순으로 인쇄하여 역순 작업을 용이하게 하는 OrderedDict의 기능을 강조합니다. OrderedDicts는 다음을 사용하여 되돌릴 수 있습니다.reverse>방법. 이는 사전의 키-값 쌍 순서를 반대로 바꿉니다.

예 : 이 예에서 아래 코드는 OrderedDict를 사용하고 'reverse' 메서드를 사용하여 키-값 쌍을 반대로 바꿉니다. 후속 루프는 항목을 역순으로 인쇄하여 `c 3, b 2, a 1`을 출력합니다.

파이썬
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)>

출력 :

 c 3, b 2, a 1>

OrderedDict Popitem() 및 Python 사전 순서

그만큼 popitem()>방법 OrderedDict에서는 다음과 함께 사용할 수 있습니다.last>마지막으로 삽입된 키-값 쌍을 제거하고 반환하는 매개변수입니다. 이는 후입선출 방식으로 항목을 처리하려는 경우에 유용합니다. OrderedDict에서 `popitem(last=True)`를 사용하면 가장 최근에 추가된 항목을 제거하고 반환하여 요소 순서 관리에 유연성을 제공합니다.

예 : 이 예에서 아래 코드는 OrderedDict를 사용하고 `last=True`와 함께 `popitem` 메소드를 적용하여 마지막으로 삽입된 키-값 쌍을 제거하고 저장합니다. 그런 다음 제거된 항목을 인쇄하여 `('c', 3)`이 출력됩니다.

파이썬
from collections import OrderedDict my_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3)]) last_item = my_dict.popitem(last=True) print(last_item)>

출력 :

지도 자바 반복자
('c', 3)>

임의의 위치에 키 삽입 ~에 Python 사전 주문됨

OrderedDict를 사용하면 다음을 사용하여 특정 위치에 새 키를 삽입할 수 있습니다.move_to_end>그리고move_to_start>행동 양식. 이러한 유연성을 통해 용도나 우선순위에 따라 키를 동적으로 재정렬할 수 있습니다. .

예 : 이 예에서 아래 Python 코드는 OrderedDict를 사용하여 순서가 지정된 키-값 쌍으로 사전을 만듭니다. 그런 다음 `move_to_end` 메소드를 사용하여 키 'a'를 끝으로, 키 'b'를 시작으로 재배치합니다.

파이썬
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)>

출력 :

b 2, c 3, a 1>

삭제 후 재삽입 Python 사전 주문됨

동일한 키를 삭제하고 다시 삽입하면 OrderedDict처럼 뒤로 밀려나지만 삽입 순서가 유지됩니다. 이 메서드는 Python OrderedDict에서 삭제 및 재삽입 작업을 보여줍니다. 처음에는 OrderedDict를 키-값 쌍으로 채우고 항목을 삭제하고 업데이트된 OrderedDict를 인쇄한 다음 삭제된 항목을 다시 삽입하여 사전의 정렬된 특성을 보여줍니다.

예 : 이 예에서 아래 Python 코드는 OrderedDict의 항목 삭제, 재삽입 및 인쇄를 보여줍니다. 먼저 OrderedDict 항목을 인쇄한 다음 'c' 키가 있는 항목을 삭제하고 업데이트된 OrderedDict를 인쇄한 다음 마지막으로 해당 값과 함께 'c'를 다시 삽입하여 OrderedDict를 다시 인쇄합니다.

인스턴스화된 자바
파이썬
# 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)>

산출:

  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>

Python의 컬렉션 모듈 사전 순서

OrderedDict는 다음의 일부입니다. 컬렉션 모듈 파이썬에서. 이는 일반 사전의 모든 메소드와 기능뿐만 아니라 항목 순서를 활용하는 몇 가지 추가 메소드도 제공합니다. 다음은 Python에서 OrderedDict를 사용하는 몇 가지 예입니다.

예 : 이 예에서 아래 코드는 OrderedDict를 사용하여 순서가 지정된 키-값 쌍으로 사전을 생성합니다. 끝에 새로운 항목 'd'를 추가하고 'e'와 'f' 항목을 처음에 삽입하며 'e'는 앞으로 이동합니다. 마지막 루프는 추가된 순서대로 사전 항목을 인쇄합니다.

파이썬
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)>

산출:

e 5 a 1 b 2 c 3 d 4 f 6>

시간 복잡도:

  • 항목 가져오기(키): 오(1)
  • 설정 항목(키, 값): 오(1)
  • 항목(키) 삭제: 에)
  • 반복: 에)

공간 복잡도: 에)

OrderedDict는 항목이 추가된 순서를 기억하는 Python의 사전 하위 클래스입니다. 일반 Python 사전에서는 항목의 순서가 보장되지 않으며, 프로그램을 실행하거나 Python의 버전이 다를 때마다 항목 순서가 변경될 수 있습니다. 그러나 OrderedDict는 나중에 새 항목이 추가되거나 기존 항목이 변경되더라도 추가된 항목의 순서를 유지합니다.

기타 고려사항

  • Python 버전 2.7의 Ordered dict는 일반 dict보다 더 많은 메모리를 소비합니다. 이는 순서를 유지하기 위한 기본 이중 연결 목록 구현 때문입니다. Python 2.7에서 Ordered Dict는 dict 하위 클래스가 아니며 컬렉션 모듈의 특수 컨테이너입니다.
  • Python 3.7부터 Python 사전의 삽입 순서가 보장됩니다.
  • Ordered Dict는 다음의 도움으로 스택으로 사용될 수 있습니다. 나는 마신다 기능. Ordered Dict를 사용하여 LRU 캐시를 구현해 보세요.