2013-10-09 4 views
-2
self.PARSE_TABLE={"$_ERROR":self.WEEK_ERRORS,"$_INFORM":self.WEEK_INFORM,"$_REDIR":self.WEEK_REDIRECTS,"$_SERVER_ERROR":self.WEEK_SERVER_ERROR,"$_BYTES":self.WEEK_BYTES,"$_HITS":self.WEEK_HITS} 


for j in self.PARSE_TABLE: 
      print j 
      break 

파이썬에서 실행할 때 첫 번째 요소는 S_REDIR인데 이유를 설명 할 수 있습니까?변수 배열 키가있는 파이썬 사전

답변

0

사전은 순서를 유지하지 않습니다. 요소를 반복 할 때 가져 오는 순서는 요소를 삽입 한 순서가 아닐 수도 있습니다. 이것은 키에 의한 값의 즉각적인 조회를 위해 지불하는 가격입니다. 즉,보고있는 동작이 정확하고 예상되며 심지어 Python 인터프리터의 실행마다 다를 수 있습니다.

0

정상적인 동작입니다. 내부 사전 및 hash codes을 사용하여 설정합니다. 주문 키를 원하시면 self.PARSE_TABLE.keys.sort()을 사용하십시오. 또한 collection library에서 OrderedDict를 사용할 수 있습니다.

0

기본적으로 사전은 모든 키를 우리가 준 순서대로가 아니라 편리한 순서로 저장합니다. 키의 순서를 유지해야하는 경우에는 파이썬 버전 3.0

P.S.에서 구현에 와서하는 OrderedDict을 사용할 수 있습니다

정렬 키는 주어진 순서를 유지하는 데 도움이 될 것이라고 생각하지 않습니다.

+0

cpython2.7도 'OrderedDict' 있습니다. – iMom0

+0

수정 해 주셔서 감사합니다 :) –