在嵌套字典中设置值

时间:2011-12-14 20:56:54

标签: python dictionary

我有嵌套dict,如:

tdict = {folder': {'file0.txt': 222, 'subfolder': {'file1.txt': 333}}, 'file00.txt': 111}

它可以更深入

如何迭代抛出现有的dict并为ex添加。新项目'file2',由列表描述:

path_list = ['folder', 'subfolder', 'file2']

2 个答案:

答案 0 :(得分:1)

如果value不是None,此函数将添加一个文件,否则将添加一个新目录:

def add_path(parent, path, value=None):
    end = len(path) - 1
    for index, component in enumerate(path):
        if index < end or value is None:
            parent = parent.setdefault(component, {})
        else:
            parent[component] = value

答案 1 :(得分:0)

我假设你想保留字典结构。所以,你想要做的是遍历列表:

currItem = tdict
for item in path_list:
    if item not in currItem:
        currItem[item] = value
    else:
        currItem = currItem[item]

根据您希望如何定义输入列表“语法”,您需要决定在value变量中添加什么内容。