这应该很简单,但我无法弄清楚。如何提取Stu的详细信息?所以我想看看姓名:Stu,年龄:14岁,体重:99.5
pets_2 = {'Name': {'Molly', 'Stu', 'Henry'},
'Age':{10, 14, 2},
'Weight':{101, 99.5, 90.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)