使用行星数据创建字典

时间:2013-11-15 00:39:45

标签: python dictionary

我有太多关于太阳系中行星的细节。我本来应该用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

我打算继续这个,为我拥有的所有数据创建一个字典,这样我就可以为每种不同类型的数据设置不同的部分。

但是,如果这是正确的方法,我不会这样做。有人能告诉我,我是否朝着正确的方向前进?如果没有,我该如何解决?

3 个答案:

答案 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
        }
}