如何提取单个词典条目?

2024-06-01 06:14:55 发布

您现在位置:Python中文网/ 问答频道 /正文

这应该很简单,但我搞不懂。我如何为斯图提取细节?所以我想看看名字:斯图,年龄:14岁,重量:99.5

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

附带的问题,这是存储这类词典的正确格式吗?你知道吗


Tags: nameage格式名字附带细节molly词典
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

如前所述,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)

现在,您的值都是^{},所以您基本上没有办法获取特定的值。把这些切换到a列表,如果你知道斯图是第二个人,你可以组装斯图:

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},
    # ...
}

所以获取斯图的信息就变成了pets_3['Stu']。你知道吗

相关问题 更多 >