我有一个具有各种“深度”的字典数据结构。我所说的“深度”是指:当深度为 1 时,dict 将类似于:
{'str_key1':int_value1, 'str_key2:int_value2}
Run Code Online (Sandbox Code Playgroud)
当深度为2时,dict将是这样的:
{'str_key1':
{'str_key1_1':int_value1_1,
'str_key1_2':int_value1_2},
'str_key2':
{'str_key2_1':int_value2_1,
'str_key2_2':int_value2_2} }
Run Code Online (Sandbox Code Playgroud)
等等等等。
当我需要处理数据时,现在我这样做:
def process(keys,value):
#do sth with keys and value
pass
def iterate(depth,dict_data):
if depth == 1:
for k,v in dict_data:
process([k],v)
if depth == 2:
for k,v in dict_data:
for kk,vv, in v:
process([k,kk],v)
if depth == 3:
.........
Run Code Online (Sandbox Code Playgroud)
所以当深度为n时我需要n 个for 循环。由于深度可以达到 10,我想知道是否有一种更动态的方式来进行迭代,而不必写出所有的 if 和 for 子句。
谢谢。