我有一个我想写的代码作为Python代码,但我已经陷入困境,无法弄清楚如何去做。
我有两年(1991年和1992年)的数据表,每年有不同的数值(男性:35(1991)和42(1992),女性:38(1991),39(1992)和儿童:15(1991),10(1992)。
我想要的是能够在python中编写一个变量(字典),这使我能够搜索特定年份的特定值(例如:men(1992)= 42)。
到目前为止,我最好的建议是制作包含元组的字典,如下所示:
people = {
'year': (1991, 1992),
'men': (35, 42),
'women': (38, 39),
'children': (15, 10)
}
但这显然无法在特定年份搜索特定值。
答案 0 :(得分:3)
我建议如下:
people = {'1991':{'men':35, 'women':38, 'children':15},
'1992':{'men':42, 'women':39, 'children':10}}
然后您可以使用以下方式访问特定示例数据:
print(people['1991']['men'])
修改强>
如果您确实需要使用元组并且还需要标识符/键,则必须使用元组列表,如下所示:
people = {'1991':[('men', 35), ('women', 38), ('children', 15)],
'1992':[('men', 42), ('women', 39), ('children', 10)]}
使用此变体,您可以访问相同的数据,如:
print(people['1991'][0][1])
答案 1 :(得分:1)
你想要一个嵌套的字典:
people = {
"men": {
1991: 35,
1992: 42
},
"women": {
1991: 38,
1992: 39
},
"children": {
1991: 15,
1992: 10
}
}
现在你可以people['men'][1991]
来获得结果35。
答案 2 :(得分:0)
我建议你把字典放在自定义类中。无论数据如何在字典本身中布局,这都将为您提供很大的灵活性,因为您可以创建方法来添加,更改和删除表中隐藏数据结构详细信息的条目。
例如,我们假设您决定在字典中组织数据,如下所示:
{1991: {'men': 35, 'women': 38, 'children': 15},
1992: {'men': 42, 'women': 39, 'children': 10}}
然后你可以将它包装在这样的类中:
class People(object):
def __init__(self):
self._data = {}
def add(self, year, men, women, children):
self._data[year] = dict(men=men, women=women, children=children)
def lookup(self, key, year):
return self._data[year][key]
def delete(self, year):
del self._data[year]
people = People()
people.add(1991, 35, 38, 15)
people.add(1992, 42, 39, 10)
print(people.lookup('women', 1991)) # --> 38
print(people.lookup('men', 1992)) # --> 42