2009-03-17 4 views
13

LinkedHashMap은 예측 가능한 반복 순서가있는 Hashtable과 같은 데이터 구조 (Python의 dict)의 Java 구현입니다. 즉, 모든 키를 순회하는 동안 삽입으로 정렬됩니다. 이는 삽입 순서를 유지하는 추가 링크 목록에 의해 수행됩니다.Python의 LinkedHashMap에 해당합니다.

파이썬과 동일한 기능이 있습니까?

답변

10

삽입 순서를 추적하는 목록을 유지 관리하여 동일한 작업을 수행 할 수도 있지만 Python 2.7Python >=3.1에는 모음 모듈에 OrderedDict 클래스가 있습니다.

2.7 이전에는 dictfollowing this recipe을 서브 클래스로 지정할 수 있습니다.

+0

OrderedDict는 연결된 문서에 따라 Python 3.1에서 제공되지만 아직 3.0에서는 제공되지 않습니다. – kquinn

+0

네 말이 맞아, 나는 그것을 간과했다. 편집 됨. – sykora

1

나는 그렇게 생각하지 않는다. 당신은 명부 플러스 명부를 사용해야 할 것입니다. 하지만 당신은 꽤 쉽게 그것을 클래스로 감싸고, keys, __getitem__, __setitem__ 등을 정의하여 원하는대로 작동하게 할 수 있습니다.

2

나는 이것이 당신이 요구하는 무엇인지 확실하지 않다 :

>>> dic = {1: 'one', 2: 'two'} 
>>> for k, v in dic.iteritems(): 
...  print k, v 

당신이 ordereddict 모듈을 사용하여 삽입의 순서로 DIC를 주문할 수 있습니다.

d = ordereddict(dic, relax=True) 
+0

''dict.iteritems''는 삽입 순서에 따라 순서를 제공한다고 생각하지 않습니다 ... – sykora

+0

맞음! 그것을 위해서는 명령 모듈을 사용해야합니다. – aatifh

관련 문제