그래서 같이 셔플 싶은 것 인 OrderedDict 있습니다왜 OrderedDict를 섞을 수 없습니까?
od = OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4)])
random.shuffle(od)
불행하게도이 (python3)를 작동하지 않습니다, 그리고 KeyError: 0
예외가 발생합니다. OrderedDict 주문을 가지고 있기 때문에
od_tmp = list(od.items())
random.shuffle(od_temp)
od = OrderedDict(od_tmp)
, 그것은 직접 정렬 할 수있는 것이 합리적인 것 같다 내가 작업 한 대안은리스트, 셔플로 변환 및 OrderedDict를 재 구축하는 것입니다. 목록으로 변환하는 것은 비효율적입니다.
질문은 다음과 같습니다
- 위의 솔루션보다 더 좋은 방법이 있나요? (목록 만 사용하지 않고)
- 왜 OrderedDict를 섞을 수 없습니까?