나는이 사전을 정렬하는 방법을 알아 내려고 노력해 왔습니다. 및 d2
사전에 d3
.중첩 사전 정렬
breakfast {'eggs': 1, 'cheese': 1}
dessert {'cream': 1, 'cake': 1}
breakfast {'eggs': 1, 'cheese': 1}
dessert {'cream': 1, 'cake': 1}
breakfast {'eggs': 1, 'cheese': 1}
dessert {'cream': 1, 'cake': 1}
breakfast {'eggs': 1, 'cheese': 1}
dessert {'cream': 1, 'cake': 1}
그것은 두 breakfast
및 dessert
올바르게, 다음 내부 dessert
, 'cream'
및 'eggs'
가 잘못된 순서대로 정렬 :
d1 = {'eggs':1, 'cheese':1}
d2 = {'cake':1, 'cream':1}
d3 = {'breakfast':{},'dessert':{}}
d3['breakfast'] = d1
d3['dessert'] = d2
for k,v in sorted(d3.items()):
for k,v in sorted(d3['breakfast'].items()):
for k,v in sorted(d3.items()):
print(k,v)
이
이 출력됩니다.그것은해야한다 :
dessert {'cake':1, 'cream':1}
그것은 또한 "분류"사전을 d3
네 번 인쇄, 나는 이유를 정확히 모르겠어요.
내가 아는 한 더 효과적인 방법이있을 수 있으므로 모든 정보를 환영합니다.
귀하의 질문에서 분명하지 않으므로 원하는 결과 (예 :보고 싶은 출력)를 설명해주십시오. – Amadan
이것은 마지막 논리적 변수 일 뿐이므로 두 개의 결과를 얻을 수 있기 때문에 논리적 인 코드입니다. –
모든 루프 변수가 같은 3 개의 중첩 된 'for'루프가 있어서는 안됩니다 (' k'와'v') 두 개의 외부 루프는 기본적으로 내부 루프를 4x로 실행하기 때문에. 'print (k, v)'를 실행하는 것은 정렬되지 않은 전체 사전 인'v'를 출력한다는 것을 주목하십시오. –