0

我有一个由其他字典组成的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

有没有办法做到这一点以及如何做到这一点?

4

1 回答 1

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:
    xxx
except:
    xxx

你认为这里会失败吗?为什么要尝试?

2)您的循环也不正确:

for key in f.keys():

f 是一个函数,它没有键。d 有。

3)当处理一个键时,你需要把它保存在输出中的某个地方,你暂时不需要

于 2013-09-29T12:22:31.817 回答