python怎么用while循环遍历一个超级多层的字典?比如{1:{2:{3:4}}}
时间: 2023-11-01 14:16:11 浏览: 95
python基础03_python循环
你可以使用while循环和递归来遍历一个超级多层的字典。下面是一个示例代码:
```python
def traverse_dict(d):
stack = [(d, 0)]
while stack:
current, depth = stack.pop()
if isinstance(current, dict):
for key, value in current.items():
print(' ' * depth + str(key))
stack.append((value, depth + 1))
else:
print(' ' * depth + str(current))
d = {1:{2:{3:4}}}
traverse_dict(d)
```
输出结果为:
```
1
2
3
4
```
这个代码使用了一个栈来存储未遍历的元素,每次从栈中弹出一个元素,如果它是一个字典,则将它的所有键值对压入栈中,并增加深度;如果它是一个值,则打印它,并使用当前深度进行缩进。由于字典可能有多层嵌套,我们需要使用递归来处理每个值。
阅读全文