这是一本字典:
data = {
'a': {
'b': {
'c': {
'd': {
'e': {
'f': 1,
'g': 50,
'h': [1, 2, 4],
'i': 3,
'j': [7, 9, 6],
'k': [
[('x', 'abc')],
[('y', 'qwe')],
[('z', 'zxc')]
]
}
}
}
}
}
}
如果可能,我的目标是查找值并将其转换为字典:
^{pr2}$我想这可以用递归实现,我甚至写了一个,但它不起作用。在
def f(d):
for key, value in d.iteritems():
if type(d[key]) is dict:
f(d)
try:
d[key] = dict(d[key])
except:
if type(d[key]) is list:
for i in d[key]:
try:
d[key][i] = dict(d[key][i])
except:
pass
return d
错误:
RecursionError: maximum recursion depth exceeded while calling a Python object
我怎么做的?在
如果你能提供一个没有递归的解决方案,我也很乐意得到它。在
你的程序中有一堆错误,让我们检查一下,然后想出一个有效的版本。在
下面是您的代码的更正版本,其中包含两个递归函数。一个是列表,另一个是字典。在
^{pr2}$在这里测试:https://repl.it/LDKn/0
如果函数是字典,则递归调用}。在
d
,而不是{只需将其更改为:
相关问题 更多 >
编程相关推荐