gpt4 book ai didi

python - 在 Python 中访问嵌套键

转载 作者:行者123 更新时间:2023-12-04 00:04:21 25 4
gpt4 key购买 nike

我有一个嵌套字典如下

entry = {
0: {"Q": 0},
1: {"W": 2, "E": 3, "N": 5, "S": 4, "Q": 0},
2: {
"N": {
"Q": {"E"}
}
},
}

当我尝试仅访问键 1 的键时,我得到以下信息:

>>> print(entry[1].keys())
dict_keys(['W', 'E', 'N', 'S', 'Q'])

但是对于键 2,它只返回顶部键而不是嵌套键。

>>> print(entry[2].keys())
dict_keys(['N'])

为什么不返回字典的嵌套键?

最佳答案

keys()doesn't work that way.

keys()

Return a new view of the dictionary’s keys

你的嵌套字典是一个完全独立的字典,你可以通过自己的 keys() 方法获取自己的键:

entry[2]['N'].keys()

如果您想递归地获取嵌套字典中的所有键,则必须为此实现一个方法:

entry = {0: {"Q": 0},
1: {"W": 2, "E": 3, "N": 5, "S": 4, "Q": 0},
2: {"N": { "Q":{"E"}}},
}


def rec_keys(dictio):
keys = []
for (key,value) in dictio.items():
if isinstance(value, dict):
keys.extend(rec_keys(value))
else:
keys.append(key)
return keys

print(rec_keys(entry))
# ['Q', 'Q', 'W', 'N', 'S', 'E', 'Q']

关于python - 在 Python 中访问嵌套键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51753809/

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