我有一个由嵌套字典和键值组成的字典。
dicta = {'key1': {'keya': 'a', 'keyb': 'b'},
'key2': {'key3':{'keyc': 'c'}}, 'key4': 4}}
有没有办法使用 for 循环到达“c”?
我试过了,
print(dicta['key2'])
for x in dicta['key2']:
for y in x['key3']:
print(y)
对于第一次打印,我得到
{'key3': {'keyc': 'c'}}
但是我得到了 TypeError: 第二次打印的字符串索引必须是整数。
提前致谢! *我编辑用 dicta 替换 n ;我第一次复制粘贴错了。
最佳答案
一般来说,没有。字典的递归深度可以是任意的,除了 for
循环之外,没有什么好方法可以遍历它们。 (您可以使用列表实现自己的堆栈并模拟递归,但这并不“好”。)
this question.中有一些遍历字典(计算深度)的递归代码
具体来说,当然。提前了解结构,您可以使用正确数量的 for
循环:
n = {'key1': {'keya': 'a', 'keyb': 'b'},
'key2': {'key3':{'keyc': 'c'}}, 'key4': 4}
for k1,v1 in n.items():
try:
for k2,v2 in v1.items():
try:
for k3,v3 in v2.items():
print(v3)
except AttributeError:
pass
except AttributeError:
pass
关于python - 我们可以使用 for 循环来迭代字典的字典吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42184428/