我一直想弄清楚如何排序這些字典:d1
和d2
裏面的字典d3
。嵌套字典排序
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)
這是輸出:
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'
是在錯誤的順序。
它應該是:
dessert {'cake':1, 'cream':1}
,它還會打印「排序」字典d3
四次,我不知道是什麼原因。
據我所知,可能有更有效的方法來做到這一點,所以任何信息都是值得歡迎的。
請解釋你希望發生的事情(例如,你想看到什麼輸出),因爲它不清楚你的問題。 – Amadan
這是非邏輯的代碼,因爲你可以做最後的循環,你會得到兩個輸出,我沒有得到你的代碼 –
你不應該有3個嵌套'for'循環都具有相同的循環變量(' k'和'v'),因爲兩個外部循環基本上只是讓內部循環運行4次。請注意,僅僅執行'print(k,v)'就會打印出「v」作爲整個字典未排序。 –