如何提取单个词典条目?

时间:2018-03-07 23:21:11

标签: python dictionary

这应该很简单,但我无法弄清楚。如何提取Stu的详细信息?所以我想看看姓名:Stu,年龄:14岁,体重:99.5

pets_2 = {'Name': {'Molly', 'Stu', 'Henry'},
          'Age':{10, 14, 2},
          'Weight':{101, 99.5, 90.3}}

侧面问题,这是存储此类词典的正确格式吗?

3 个答案:

答案 0 :(得分:3)

我会使用像这样的结构

pets_2 = {
    'pet1': {'Name':'Molly', 'Age': 10, 'Weight': 101.0},
    'pet2': {'Name':'Stu', 'Age': 14, 'Weight': 99.5},
    'pet3': {'Name':'Henry', 'Age': 2, 'Weight': 90.3}
}

以及获取数据

print(pets_2['pet1']) #{'Name': 'Molly', 'Age': 10, 'Weight': 101.0}
print(pets_2['pet1']['Name']) # Molly

答案 1 :(得分:1)

目前,您的值都是 sets ,因此您基本上无法获取特定值。将这些切换到一个列表,并告诉你知道Stu是第二个人,你可以组装Stu:

def get_pet(i):
    return {'Name': pets_2['Name'][i],
            'Age': pets_2['Age'][i],
            'Weight': pets_2['Weight'][i]}

更自然地,您可以像这样存储数据:

pets_3 = {
    'Stu': {'Age': 14, 'Weight': 99.5},
    # ...
}

因此,让Stu的信息变为pets_3['Stu']

答案 2 :(得分:1)

如上所述,set是无序的。这是使用列表的一种解决方案。

d = {'Name':   ['Molly', 'Stu', 'Henry'],
     'Age':    [10, 14, 2],
     'Weight': [101, 99.5, 90.3]}

d2 = {d['Name'][i]: (d['Age'][i], d['Weight'][i]) for i in range(len(d))}
# {'Henry': (2, 90.3), 'Molly': (10, 101), 'Stu': (14, 99.5)}

d2['Stu']  # (14, 99.5)