질서 --- 파이썬 데이터 구조와 알고리즘 관련 문제 및 해결 능력을 유지하기 위해 사전을 만들려면

   실제 사례 :

   제목을 완료 플레이어 후 프로그래밍 경쟁 시스템, 타이밍 프로그래밍 참가자의 붕괴는,이 때 붕괴 사전을 사용하는 플레이어를 기록, 그래서 쿼리 결과의 이름으로 경기 후 선수

  { 'Lilei':( 2,43), 'HanMei':( 5,52), '짐':( 1,39) ...}

      경기 후 조정이 인쇄 된 선수 점수 순서, 방법을 달성하기에 순위가된다?

 

에서 컬렉션을 가져 오기 OrderedDict
 #의 셔플 셔플 기능, 주문 목록이 중단 될 수 있습니다 
에서 임의 가져 오기 셔플 

'' ' 
OrderedDict의 표준 라이브러리 모음을 사용 
DICT는, 차례로, 플레이어가 OrderedDict에 점수를 대체 사전을 OrderedDict하는 
' '' 

플레이 어스 = 목록 ( " ABCDEFGH " ) 
셔플 (플레이어) 
전단 (플레이어)
 # [ 'C', 'B', 'D', 'A', 'F', 'E', 'H', 'G'] 
OD = OrderedDict ()
 # 간단한 시뮬레이션을 위해 순위를 
위한 I, P- 형  열거합니다 (플레이어 1 )
    여기서 P] = 프린트(OD)
 #에 OrderedDict ([( 'B',. 1, 'A', 2), ( 'F',. 3), ( 'C',. 4, 'D',. 5), ( 'G '6). ('H ', 7). ('E '를, 8)). 
#의 기록 인터페이스 - 조회 결과의 이름 


DEF의 query_by_name (D 이름)
     # 키에 따른 - 값 
    리턴 D [이름] 


# 테스트 - 키 값 - 즉, 이름 아래 - 촬영 결과 
인쇄 (query_by_name (OD, ' C ' ))
 프린트 (query_by_name (OD, ' B는 ' ))
 '' ' 
쿼리의 이름, 또는 영역에있어서, 상기 질의 - 순서에 따라 이름 
    ITER (OD)를 인덱싱과 슬라이싱 작업을 지원하지 않습니다 
반복 도구 itertoools에서, islice 슬라이스의 도입 
'' '
에서 itertools 수입 islice의
 #islice 작동 : 순차 반복 객체의 이전 반복 
#의 예 - 0 반복 시작 폐기 범위 밖의 값 
isTest = islice (범위 (10) ,. 3 ,. 6 )
 전단 (목록 (isTest))
 #의 [3 ,. 4. . 5] 
isOd = islice (OD ,. 3 ,. 6 )
 전단 (목록 (isOd))
 # [ 'E', 'H', 'A'] 


# 순위 값 조회 키 키 
DEF의 query_by_order (D, A, B = 없음) : . - = 1
     # 당신은 단지 데이터 쿼리를 원하는 경우 
    경우 B는 제공되지 않습니다 없음 :
         #의 .. B + A = 1 만 (A, A +에 액세스 할 수있는 설명 1) 
        . B는 + 1 개 = 반환 목록 (islice을 ( OD, A, B)) #의 시험 인쇄 (query_by_order (OD ,. 4
    



))
 프린트 (query_by_order (OD, 3, 6 ))
 # [ 'g'] 
# [ 'C', 'G', 'F', 'E']

 

 상술 한 문제 해결 방안을 python3.5를 기반으로

   python3.6, 내장 사전 DICT 동작은 OrderedDict과 일치하고있다, 당신은 DICT를 사용할 수 있습니다

 그러나 코드 호환하기 위해, OrderedDict 기능을 사용하는 것이 좋습니다.

 

추천

출처www.cnblogs.com/goddog1024/p/11301123.html