English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
OrderedDict는 Python의 dict 객체의 서브 클래스입니다. OrderedDict와 dict 간의 유일한 차이점은 OrderedDict에서는 삽입된 키의 순서를 유지한다는 점입니다. 딕셔너리에서는 정렬이 일어날 수도 있고 일어날 수도 없습니다.
OrderedDict는 표준 라이브러리 클래스로, 다음 위치에 있습니다.collections모듈 내.
먼저 사용하기 위해 그를 임포트해야 합니다.집합표준 라이브러리 모듈.
import collections
이 장에서 OrderedDict에 대한 몇 가지 연산과 OrderedDict와 Dict 간의 차이점을 볼 수 있습니다.
Dict와 OrderedDict에 몇 가지 키와 값을 넣을 수 있습니다. 이 예제에서 Dict의 순서가 다를 수 있음을 볼 수 있습니다. 하지만 OrderedDict는 수정됩니다.
import collections #Create normal dict my_dict = {} my_dict['AA'] = 11 my_dict['BB'] = 22 my_dict['CC'] = 33 my_dict['DD'] = 44 for item in my_dict.items(): print(item) print() #Create ordered dict my_ord_dict = collections.OrderedDict() my_ord_dict['AA'] = 11 my_ord_dict['BB'] = 22 my_ord_dict['CC'] = 33 my_ord_dict['DD'] = 44 for item in my_ord_dict.items(): print(item)
출력 결과
('AA', 11) ('CC', 33) ('BB', 22) ('DD', 44) ('AA', 11) ('BB', 22) ('CC', 33) ('DD', 44)
OrderedDict에서 지정된 키의 값이 변경될 때, 키의 순서는 변경되지 않습니다. Dict 타입 객체에 대한 이 문장은 올바르거나 잘못될 수 있습니다.
import collections #Create normal dict my_dict = {} my_dict['AA'] = 11 my_dict['BB'] = 22 my_dict['CC'] = 33 my_dict['DD'] = 44 for item in my_dict.items(): print(item) #Change the value for key BB my_dict['BB'] = 100 print('After changing in Dict') for item in my_dict.items(): print(item) print() #Create ordered dict my_ord_dict = collections.OrderedDict() my_ord_dict['AA'] = 11 my_ord_dict['BB'] = 22 my_ord_dict['CC'] = 33 my_ord_dict['DD'] = 44 for item in my_ord_dict.items(): print(item) #Change the value for key BB my_ord_dict['BB'] = 100 print('After changing in Ordered Dict') for item in my_ord_dict.items(): print(item)
출력 결과
('AA', 11) ('BB', 22) ('CC', 33) ('DD', 44) After changing in Dict ('AA', 11) ('CC', 33) ('DD', 44) ('BB', 100) ('AA', 11) ('BB', 22) ('CC', 33) ('DD', 44) After changing in Ordered Dict ('AA', 11) ('BB', 100) ('CC', 33) ('DD', 44)
OrderedDict에서 요소를 제거하고 해당 키와 값에 대해 재插入 작업을 수행할 때, 그것은 그것을 뒤로 밀어넣습니다.尽管它在插入时保持顺序,但是为了删除,它会删除订购信息,并作为重新插入的新条目。
import collections #Create ordered dict my_ord_dict = collections.OrderedDict() my_ord_dict['AA'] = 11 my_ord_dict['BB'] = 22 my_ord_dict['CC'] = 33 my_ord_dict['DD'] = 44 for item in my_ord_dict.items(): print(item) #Delete item in key BB my_ord_dict.pop('BB') print('After Deleting') for item in my_ord_dict.items(): print(item) #re-inserting item my_ord_dict['BB'] = 22 print('After Re-inserting') for item in my_ord_dict.items(): print(item)
출력 결과
('AA', 11) ('BB', 22) ('CC', 33) ('DD', 44) After Deleting ('AA', 11) ('CC', 33) ('DD', 44) After Re-inserting ('AA', 11) ('CC', 33) ('DD', 44) ('BB', 22)