访问嵌套字典中的值
Accessing values in nested dictionary
嵌套字典长度为12,这是其中一条记录:
{('ALEXANDER', 'MALE'): {'2010': ('2619', None), '2011': ('2494', None), '2009': ('2905', None)}, ...
主键=('ALEXANDER', 'MALE')
主值(嵌套字典)= {'2010': ('2619', None), '2011': ('2494', None), '2009': ('2905', None)}
嵌套字典 key/value = '2010': ('2619', None)
...
如何访问年份 '2010'
和值 '2619'
?
是否可以使用变量来做到这一点?
这可能会为您指明正确的方向:
>>> d= {('ALEXANDER', 'MALE'): {'2010': ('2619', None), '2011': ('2494', None), '2009': ('2905', None)}}
>>> for mainKey in d:
print(mainKey)
for key,val in d[mainKey].items():
print(key,val[0])
('ALEXANDER', 'MALE')
2011 2494
2009 2905
2010 2619
data = {
('ALEXANDER', 'MALE'): {'2010': ('2619', None), '2011': ('2494', None), '2009': ('2905', None)},
# ...
}
value, _ = data[('ALEXANDER', 'MALE')]['2010']
然后value = '2619'
如果D = {'2010': ('2619', None), '2011': ('2494', None), '2009': ('2905', None)}
然后D.keys()
return字典中的键列表['2009', '2011', '2010']
然后您可以通过 D.keys()[-1]
访问值 2010
并通过 D[D.keys()[-1]][0]
访问 2619
当你的字典的键是元组时,我个人更喜欢使用 namedTuple 函数。这允许您以清晰易读的方式访问字典中的元素。
在下面的代码中,我介绍了一种使用 namedTuple 构造的方法以及一些进一步访问元素的方法。
from collections import namedtuple
my_dict = {('ALEXANDER', 'MALE'): {'2010': ('2619', None), '2011': ('2494', None), '2009': ('2905', None)}}
person = namedtuple("Person", ["name", "sex"])
nt1 = person(name="ALEXANDER", sex="MALE")
print nt1.name
# outputs "ALEXANDER"
print nt1.sex
# outputs "MALE"
print my_dict[nt1]
# outputs {'2009': ('2905', None), '2011': ('2494', None), '2010': ('2619', None)}
print my_dict[nt1].keys()
# outputs ['2009', '2011', '2010']
print my_dict[nt1]['2010']
# outputs ('2619', None)
print my_dict[nt1]['2010'][0]
# outputs 2619
嵌套字典长度为12,这是其中一条记录:
{('ALEXANDER', 'MALE'): {'2010': ('2619', None), '2011': ('2494', None), '2009': ('2905', None)}, ...
主键=('ALEXANDER', 'MALE')
主值(嵌套字典)= {'2010': ('2619', None), '2011': ('2494', None), '2009': ('2905', None)}
嵌套字典 key/value = '2010': ('2619', None)
...
如何访问年份 '2010'
和值 '2619'
?
是否可以使用变量来做到这一点?
这可能会为您指明正确的方向:
>>> d= {('ALEXANDER', 'MALE'): {'2010': ('2619', None), '2011': ('2494', None), '2009': ('2905', None)}}
>>> for mainKey in d:
print(mainKey)
for key,val in d[mainKey].items():
print(key,val[0])
('ALEXANDER', 'MALE')
2011 2494
2009 2905
2010 2619
data = {
('ALEXANDER', 'MALE'): {'2010': ('2619', None), '2011': ('2494', None), '2009': ('2905', None)},
# ...
}
value, _ = data[('ALEXANDER', 'MALE')]['2010']
然后value = '2619'
如果D = {'2010': ('2619', None), '2011': ('2494', None), '2009': ('2905', None)}
然后D.keys()
return字典中的键列表['2009', '2011', '2010']
然后您可以通过 D.keys()[-1]
访问值 2010
并通过 D[D.keys()[-1]][0]
2619
当你的字典的键是元组时,我个人更喜欢使用 namedTuple 函数。这允许您以清晰易读的方式访问字典中的元素。
在下面的代码中,我介绍了一种使用 namedTuple 构造的方法以及一些进一步访问元素的方法。
from collections import namedtuple
my_dict = {('ALEXANDER', 'MALE'): {'2010': ('2619', None), '2011': ('2494', None), '2009': ('2905', None)}}
person = namedtuple("Person", ["name", "sex"])
nt1 = person(name="ALEXANDER", sex="MALE")
print nt1.name
# outputs "ALEXANDER"
print nt1.sex
# outputs "MALE"
print my_dict[nt1]
# outputs {'2009': ('2905', None), '2011': ('2494', None), '2010': ('2619', None)}
print my_dict[nt1].keys()
# outputs ['2009', '2011', '2010']
print my_dict[nt1]['2010']
# outputs ('2619', None)
print my_dict[nt1]['2010'][0]
# outputs 2619