小编Mus*_*ov1的帖子

如何在Python中迭代动态“深度”的字典?

我有一个具有各种“深度”的字典数据结构。我所说的“深度”是指:当深度为 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 子句。

谢谢。

python iteration algorithm dictionary

2
推荐指数
1
解决办法
5937
查看次数

标签 统计

algorithm ×1

dictionary ×1

iteration ×1

python ×1