2013-10-13 2 views
-2

사전에 파이썬을 사용하는 방법을 배우려고했는데 두 가지 매우 짧은 프로그램을 만들었습니다. 나는 프로그램의 결과에 의구심이있다. 여기에 코드가 있습니다. 나는 다음과 같은 프로그램을 만들 때 사전에 예기치 않은 결과가 나타남

d = {} 
d[0] = '0' 
d[1] = '1' 
d[2] = '2' 
for keys in d: 
    print d[keys] 

그것은, 다음과 같은 출력

0 
1 
2 

을하는 듯했으나.

d = {} 
d['name'] = "Pratik" 
d['age'] = 17 
d['country'] = "India" 
for keys in d: 
    print d[keys] 

은 누군가가 나에게이 출력을 설명 할 수 있다면 그것은 좋은 것 다음과 같은 출력

India 
17 
Pratik 

했다. 최초의 출력을보고 예상되는 출력은 누군가가 나에게이 출력을 설명 할 수있는 경우

Pratik 
17 
India 
+1

Dicts가 순서 붙일 읽을 수 있습니다 ... 자주 묻는 질문 –

+0

대신 OrderedDict 사용 –

답변

1

으로는, 빠른 예를 사전 주문 사용할 수 있습니다 @Burhan 칼리드에 의해 제안 :

from collections import OrderedDict 

d = OrderedDict() 
d['name'] = "Pratik" 
d['age'] = 17 
d['country'] = "India" 

print d 

OrderedDict ([('이름', 'Pratik'), ('나이', 17), ('국가', '인도')])

here

+0

OrderedDict의 예제를 지정해 주셔서 감사합니다. –

+0

나는 OrderedDict를 Burhan이라고 제안하지 않았습니다. –

+0

수정 됨 :) copy error .... –

2

그것은 좋은 것이었다. 첫 번째 출력을 보는 예상 출력은

사전은 정렬되지 않았으며 간단한 해시 테이블입니다.

2

에밀 (Emil)이 당신에게 설명을주었습니다. 그에 확장 - 사전 임의을 정렬이 순서가 있음을 의미, 그냥 하나의 당신에 의존 (또는 귀하의 경우 숫자 순서로 같은 의미가 있습니다 하나) 할 수 있습니다.

순서대로 사전에서 항목을 가져 오려면 OrderedDict을 사용하거나 가져올 순서대로 키 목록을 만든 다음 목록을 단계적으로 건너 뜁니다. 목록 (및 튜플)은 순서를 유지합니다.

k = ['name', 'age', 'country'] 

for i in k: 
    d[i] 
관련 문제