好了的輸出,所以我有以下的行星的詞典,並且每個行星都有包含其規範自己的字典:排序字典
d={
'Mercury':{
'Distance from the sun' : 58,
'Radius' : 2439.7,
'Gas planet?' : False,
'Atmosphere?' : True,
'Moons' : []},
'Jupiter':{
'Distance from the sun' : 483,
'Radius' : 69911,
'Gas planet?' : True,
'Atmosphere?' : True,
'Moons' : ['Io', 'Ganymede', 'Callisto', 'Europa', 'Adrastea']},
'Uranus':{
'Distance from the sun' : 3000,
'Radius' : 25559,
'Gas planet?' : True,
'Atmosphere?' : True,
'Moons' : ['Miranda', 'Ariel', 'Umbriel', 'Titania', 'Oberon']},
'Mars':{
'Distance from the sun' : 207,
'Radius' : 3396.2,
'Gas planet?' : False,
'Atmosphere?' : True,
'Moons' : ['Phobos', 'Deimos']},
'Earth':{
'Distance from the sun' : 150,
'Radius' : 6371.0,
'Gas planet?' : False,
'Atmosphere?' : True,
'Moons' : ['Moon']},
'Venus':{
'Distance from the sun' : 108,
'Radius' : 6051.8,
'Gas planet?' : False,
'Atmosphere?' : True,
'Moons' : []},
'Saturn':{
'Distance from the sun' : 1400,
'Radius' : 60268,
'Gas planet?' : True,
'Atmosphere?' : True,
'Moons' : ['Pan', 'Prometheus', 'Titan', 'Phoebe', 'Rhea']},
'Neptune':{
'Distance from the sun' : 4500,
'Radius' : 24764,
'Gas planet?' : True,
'Atmosphere?' : True,
'Moons' : ['Triton', 'Nereid', 'Proteus', 'Naiad', 'Thalassa']}}`
從本質上講就是我想要做的就是打印它在它出現的順序在詞典中,所以所使用的代碼:
for planets in sorted(d.keys()):
print(planets)
for k,v in sorted(d[planets].items()):
print(k, ":", v)
然而這產生每個行星和密鑰值的每個行星的描述隨機順序。 (行星的名字,然後它的規格都印在它下面,當我在python運行它,我只是不知道如何格式化它來顯示它在堆棧方式)
即:
Neptune
Moons : ['Triton', 'Nereid', 'Proteus', 'Naiad', 'Thalassa']
Radius : 24764
Distance from the sun : 4500
Gas planet? : True
Atmosphere? : True
Jupiter
Moons : ['Io', 'Ganymede', 'Callisto', 'Europa', 'Adrastea']
Radius : 69911
Distance from the sun : 483
Gas planet? : True
Atmosphere? : True
Earth
Moons : ['Moon']
Radius : 6371.0
Distance from the sun : 150
Gas planet? : False
Atmosphere? : True
Mercury
Moons : []
Radius : 2439.7
Distance from the sun : 58
Gas planet? : False
Atmosphere? : True
Mars
Moons : ['Phobos', 'Deimos']
Radius : 3396.2
Distance from the sun : 207
Gas planet? : False
Atmosphere? : True
Uranus
Moons : ['Miranda', 'Ariel', 'Umbriel', 'Titania', 'Oberon']
Radius : 25559
Distance from the sun : 3000
Gas planet? : True
Atmosphere? : True
Venus
Moons : []
Radius : 6051.8
Distance from the sun : 108
Gas planet? : False
Atmosphere? : True
Saturn
Moons : ['Pan', 'Prometheus', 'Titan', 'Phoebe', 'Rhea']
Radius : 60268
Distance from the sun : 1400
Gas planet? : True
Atmosphere? : True
我試過使用sorted()
,但只是按字母順序排列。有什麼建議麼?
你想要什麼命令? 「命令它出現在字典中」是什麼意思?字典不以任何順序保存元素。 – Jared 2013-04-05 03:24:26
你不能這樣做,字典不是爲了排序,而是主要用於映射和檢索。你可以做的是構建一個元組列表(x,y),其中x是關鍵字,y是值。您可以使用循環按順序打印出鍵和值的元組列表,然後將該列表傳遞給'dict()',然後在按照該順序打印之後您將擁有該字典。 – eazar001 2013-04-05 03:47:36
對於你自己的實現:http://stackoverflow.com/questions/60848/how-do-you-retrieve-items-from-a-dictionary-in-the-order-that-theyre-inserted – eazar001 2013-04-05 03:49:31