我有一个python字典,包含其他类似的字典(例如):
{2: {4: {5: {6: {7: None}}}, 7: None}, 7: None}
我想提取密钥,以便最终得到:
[2,4,5,6,7,None]
[2,7,None]
[7,None]
我试图用递归函数解决这个问题,但没有运气......
def f(d):
paths = []
try:
for key in f.keys():
path.append(f(d[key]))
pass:
pass
有没有办法做到这一点以及如何做?
答案 0 :(得分:1)
以下似乎可以解决问题:
def f(d):
paths = []
for key, value in d.items():
if value is None:
paths.append([key, value])
else:
internal_lists = f(value)
for l in internal_lists:
paths.append([key] + l)
return paths
1)你的try:循环编写得很糟糕:语法是
try:
xxx
except:
xxx
你认为这里有失败吗?为什么尝试?
2)你的循环既不对:
for key in f.keys():
f是一个函数,它没有键。 d确实。
3)处理密钥时,您需要将其保留在输出中的某个位置,而您暂时不会这样做