剥离非零值的嵌套字典

时间:2016-04-15 15:54:34

标签: python dictionary

我试图剥离一个嵌套的字典(只有1级深,例如:def strip_nested_dict(self, some_dict): new_dict = {} for sub_dict_key, sub_dict in some_dict.items(): for key, value in sub_dict.items(): if value: new_dict[sub_dict_key][key] = value return new_dict 所有非零和无值。
但是,我不确定是谁正确地重新组装了dict,下面给了我一个关键错误。

TextView

2 个答案:

答案 0 :(得分:1)

您需要在访问之前创建嵌套字典:

for sub_dict_key, sub_dict in some_dict.items():
    new_dict[sub_dict_key] = {} # Add this line

    for key, value in sub_dict.items():
        # no changes

(要使new_dict[sub_dict_key][key]有效,new_dict必须是字典,而new_dict[sub_dict_key]也必须是字典。)

答案 1 :(得分:0)

这很有用。遗憾的是,您不能只分配嵌套值,而不必先为每个键创建一个空值。

def strip_nested_dict(self, some_dict):
    new_dict = {}
    for sub_dict_key, sub_dict in some_dict.items():
        new_dict[sub_dict_key] = {}
        for key, value in sub_dict.items():
            if value:
                new_dict[sub_dict_key][key] = value
    return new_dict