【发布时间】:2020-06-09 12:29:55
【问题描述】:
def recursion(input_type):
print('input_type ',input_type)
if isinstance(input_type, dict):
num = 0
for k,v in input_type.items():
if isinstance(v, dict):
print('from recursion')
recursion(v)
elif isinstance(v, list):
for j in v:
if isinstance(j, dict):
print('from recursion level 2')
recursion(j)
else:
temp_dict = {k:v}
print('type: ',type(temp_dict), k, v)
print('num',num)
num = num+1
for i in list_:
recursion(i)
如何从递归中得到中间结果。
考虑如下所示的输入:
input: [{'a':a, 'b':b, 'c':[{'d':d, 'e':e}]}]
Updated input: [ {'a':a, 'b':b, 'c': { 'd':d, 'e': [ {'f':f, 'g':g}, {'f':f1, 'g':g1} ] } } ]
desired output: [{'a':a, 'b':b, 'd':d, 'f':f, 'g':g, 'f_new':f1, 'g_new':g1}]
如果键是重复的,那么它应该更新,例如 'f' 到 'f_new' 或类似的东西
提前谢谢你!!
【问题讨论】:
-
我正在迭代列表,但它只是一个 for 循环。所以函数的输入是字典
-
我知道这不是一个良好的结构。但无论如何都必须提取
-
是否应该删除密钥
'c'及其值? -
@Ch3steR,是的。我不想再把“c”作为键了
-
@blhsing,我已经编辑了代码。
标签: python python-3.x list dictionary recursion