我有嵌套dict,如:
tdict = {folder': {'file0.txt': 222, 'subfolder': {'file1.txt': 333}}, 'file00.txt': 111}
它可以更深入
如何迭代抛出现有的dict并为ex添加。新项目'file2'
,由列表描述:
path_list = ['folder', 'subfolder', 'file2']
答案 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
变量中添加什么内容。