两个字典嵌套在里面

时间:2016-08-11 22:18:25

标签: python-3.x

我有这样的嵌套字典:

dic={'dic1':'a': , 'b': , 'dic2':'a': , 'b':  , 'dic3':'a': , 'b': }

每个内部字典都有许多行数据。 有两个问题:
1.我想比较嵌套字典中'a'的值与包含两个数据集dataset1dataset2的hdf5文件数据集之一的值,例如a中是否存在dataset1的值{1}},访问dataset2值。

2.访问'b'信息对应'a'数据? 对于第一部分,我正在执行以下过程,这是一个永无止境的解决方案;对于第二个问题,我不知道如何访问b的同一元组中的a! 有没有人知道如何解决这个问题?

for key, value in dict.items():
 for k,v in value.items():
     if 'a' in k:
        for t in entry[key][k]:
            if t in file['/dataset1']:
                joint = file['/dataset2'][file['/dataset1'] == t]

1 个答案:

答案 0 :(得分:0)

如果您的'a'和“b”键始终存在并且事先已知,则您可能不需要第二个循环(如果没有,则可以添加测试if 'a' in inner_dict and 'b' in inner_dict )。您的测试'a' in k可能没有达到预期的效果(它正在对内部键字符串进行子字符串匹配,如果并非所有键都是单个字符,则可能会产生误报。)

尝试这样的事情:

for outer_key, inner_dict in dic.items():
    for t in inner_dict['a']:
        if t in file['/dataset1']:
            joint = file['/dataset2'][file['/dataset1'] == t] # not sure this makes sense
            b_value = inner_dict['b']
            # I think you want to do something with b_value here, but I'm not sure what