我有太多关于太阳系中行星的细节。我本来应该用Python制作一本字典。对于每个行星,我有它的半径,与太阳的距离,卫星的数量,是否存在大气层,卫星的名称,是否是气体行星等等。
例如,以下是Mercury的数据:
Mercury
Radius - 2,439.7 km
Distance from the sun - 58 million km
Moons - none
Atmosphere? True
Gas planet? False
我如何使用所有这些数据来创建字典?
到目前为止,我有:
radius = {} #radius of planets
radius['Mercury'] = 2439.7
radius['Venus'] = 6051.8
radius['Earth'] = 6371.0
radius['Mars'] = 3,396.2
radius['Jupiter'] = 69,911
radius['Saturn'] = 60,268
radius['Uranus'] = 25,559
radius['Neptune'] = 24,764
distance = {} # distance from sun
distance['Mercury'] = 58000000
distance['Venus'] = 108000000
我打算继续这个,为我拥有的所有数据创建一个字典,这样我就可以为每种不同类型的数据设置不同的部分。
但是,如果这是正确的方法,我不会这样做。有人能告诉我,我是否朝着正确的方向前进?如果没有,我该如何解决?
答案 0 :(得分:5)
制作行星词典可能要容易得多,其中每个行星都包含该行星属性的字典。您还可以通过使用字典文字语法来节省一些精力并避免重复。
按照上面的建议进行操作看起来像这样:
planets = {
'Mercury': {
'radius': 2439.7,
'distance': 58000000
'moons': []
# etc...
},
'Venus': {
'radius': 6051.8,
'distance': 108000000,
'moons': []
# etc...
},
'Earth': {
'radius': 6371.0,
'distance': 150000000,
'moons': ['Luna']
# etc...
}
# etc...
}
答案 1 :(得分:2)
构建数据可能会更好,所以看起来像这样:
planets = {
"mercury": {
"radius": 2439.7,
"distance": 58000000,
# etc
},
"venus": {
"radius": 6051.8,
"distance": 108000000,
# etc
},
#etc
}
这样,我们只需要一个变量,并且可以自动将所有与单个行星相关的数据保存在一个地方。
然后,如果你想获得行星的所有距离(例如),你可以使用列表或字典理解来构造另一个临时字典:
distances = {planet: planets[planet]['distance'] for planet in planets}
答案 2 :(得分:0)
我会设计字典,以便键是行星名称,值是另一个字典,其中的键是属性。
您可以按如下方式访问它:
mercury_radius = planet["mercury"]["radius"]
并声明如下:
planets = {
"mercury" : {
"radius" : 2439.7,
"distance_sun" : 58000000,
"moons" : 0,
"atmosphere" : True,
"gas_planet" : False
}
}