gpt4 book ai didi

python - 为什么这段代码没有遍历所有 dict 的元素?

转载 作者:太空宇宙 更新时间:2023-11-04 09:37:15 25 4
gpt4 key购买 nike

<分区>

我有一个有很多值的字典,其中一些是子字典,也有子字典等等。

对于每个值,我需要构建一个字符串,将顶级键与一个点连接起来。例如,如果我的字典是 {'a': 1, 'b': {'c': 2, 'd': 3, 'e': {'f': 4}}},我需要构建以下字符串:

a
b.c
b.d
b.e.f

为此,我编写了以下代码

from types import GeneratorType


def get_parameter(d, top_level_param):
for k, v in d.items():
parameter = top_level_param + '.' + k
if isinstance(v, dict):
get_parameter(v, parameter)
else:
yield parameter


d = {'a': 1, 'b': {'c': 2, 'd': 3, 'e': {'f': 4}}}

for k, v in d.items():
if isinstance(v, dict):
parameter = get_parameter(v, k)
else:
parameter = k

if isinstance(parameter, GeneratorType):
for p in parameter:
print(p)
else:
print(parameter)

但是,输出缺少 b.e.f,我不知道为什么。在纸面上,它看起来应该由 get_parameter() 返回。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com