我有一个嵌套字典如下
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()
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/