在任意深度的嵌套字典上行走/迭代(字典代表目录树),可以使用递归或队列方法。以下是一个使用递归方法的Python示例:
def iterate_nested_dict(d, path=None):
if path is None:
path = []
for k, v in d.items():
if isinstance(v, dict):
yield from iterate_nested_dict(v, path + [k])
else:
yield path + [k], v
nested_dict = {
'a': {
'b': {
'c': 1
},
'd': 2
},
'e': 3
}
for path, value in iterate_nested_dict(nested_dict):
print(f"Path: {path}, Value: {value}")
输出:
Path: ['a', 'b', 'c'], Value: 1
Path: ['a', 'd'], Value: 2
Path: ['e'], Value: 3
这个示例中,我们定义了一个名为iterate_nested_dict
的函数,它接受一个嵌套字典d
和一个可选的path
参数。path
参数用于存储当前遍历的路径。我们使用yield from
语句来递归地遍历嵌套字典,并在每次迭代时返回当前路径和值。
在这个示例中,我们使用了一个名为nested_dict
的嵌套字典。我们调用iterate_nested_dict
函数并传入nested_dict
,然后使用for
循环遍历返回的路径和值。
这个示例可以很容易地扩展到其他编程语言,只需实现一个递归函数来遍历嵌套字典。
领取专属 10元无门槛券
手把手带您无忧上云