python怎么用while循环遍历一个超级多层的字典?比如{1:{2:{3:4}}}
时间: 2023-11-01 19:16:11 浏览: 41
你可以使用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
```
这个代码使用了一个栈来存储未遍历的元素,每次从栈中弹出一个元素,如果它是一个字典,则将它的所有键值对压入栈中,并增加深度;如果它是一个值,则打印它,并使用当前深度进行缩进。由于字典可能有多层嵌套,我们需要使用递归来处理每个值。
相关问题
python用while循环遍历列表
可以使用以下代码来使用while循环遍历列表:
```
my_list = [1, 2, 3, 4, 5]
i = 0
while i < len(my_list):
print(my_list[i])
i += 1
```
这个代码将会输出:
```
1
2
3
4
5
```
python用for循环遍历字典
在Python中,可以使用for循环遍历字典。字典是一种键值对的数据结构,因此在遍历时需要同时获取键和值。以下是一个示例:
```python
my_dict = {"apple": 1, "banana": 2, "orange": 3}
# 遍历字典的键值对
for key, value in my_dict.items():
print(key, value)
# 遍历字典的键
for key in my_dict.keys():
print(key)
# 遍历字典的值
for value in my_dict.values():
print(value)
```
在上面的示例中,使用了三种不同的for循环遍历字典。第一个for循环使用了字典的items()方法来获取字典的键值对,然后将它们分别赋值给key和value变量。第二个for循环使用了字典的keys()方法来获取字典的键,第三个for循环使用了字典的values()方法来获取字典的值。