gpt4 book ai didi

python - 获取python中最深嵌套的dict的值

转载 作者:行者123 更新时间:2023-11-30 21:57:23 26 4
gpt4 key购买 nike

我有一本像这样的字典

{a:{b:{c:{d:2}}}, e:2, f:2}

我该如何获取 d 的值并在 python 中更改它?前面的问题只展示了如何获取嵌套级别,但没有展示如何获取值。在这种情况下,我不知道字典的嵌套级别。任何帮助将不胜感激,谢谢!附:我正在使用 python 3

最佳答案

一些递归怎么样?

def unest(data, key):
if key in data.keys():
return data.get(key)
else:
for dkey in data.keys():
if isinstance(data.get(dkey), dict):
return unest(data.get(dkey), key)
else:
continue

d = {'a':{'b':{'c':{'d':25}}}, 'e':2, 'f':2}

r = unest(d, 'd')
# 25

r = unest(d, 'c')
# {'d': 25}

编辑:正如 Paul Rooney 指出的那样,我们不必使用 data.keys ,我们可以通过执行 if key in data 来简单地迭代键

编辑 2:根据您提供的输入,这将找到最深的级别,但这并不涵盖某些情况,例如键 e也是一个嵌套字典 n + 1级别 n等于键 a 的深度.

def find_deepest(data):
if not any([isinstance(data.get(k), dict) for k in data]):
return data
else:
for dkey in data:
if isinstance(data.get(dkey), dict):
return find_deepest(data.get(dkey))
else:
continue

u = find_deepest(d)
# {'d': 2}

关于python - 获取python中最深嵌套的dict的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55272369/

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