Ich habe versucht, herauszufinden, wie diese Wörterbücher zu sortieren: d1
und d2
innerhalb des Wörterbuchs d3
.verschachtelt Wörterbuch Sortierung
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)
Dies ist die Ausgabe:
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}
Es sortiert die beiden breakfast
und dessert
korrekt, dann in dessert
, 'cream'
und 'eggs'
in der falschen Reihenfolge sind.
Es sollte sein:
dessert {'cake':1, 'cream':1}
und druckt es auch die „sortiert“ Wörterbuch d3
viermal, und ich bin mir nicht ganz sicher, warum.
Nach allem, was ich weiß, könnte es eine effektivere Methode sein, dies zu tun, so dass jede Information willkommen ist.
Bitte erläutern Sie, was Sie * wollten * (z. B. welche Ausgabe Sie sehen wollten), wie es aus Ihrer Frage nicht klar ist. – Amadan
das ist unlogischer Code, weil Sie nur die letzte for Schleife machen könnten, würden Sie zwei Ausgaben bekommen, ich bekomme Ihren Code nicht –
Sie sollten nicht 3 verschachtelte 'for' Schleifen haben, die alle die gleichen Schleifenvariablen haben (' k 'und 'v'), da die beiden äußeren Schleifen im Grunde nur die innere 4x ausführen lassen. Beachten Sie, dass '' print (k, v) '' '' '' das ganze Wörterbuch unsortiert ausdruckt. –