如果遍历由字典嵌套的多层列表的函数无法正常工作,可以尝试使用递归的方法来解决。下面是一个示例代码:
def traverse_list(lst):
for item in lst:
if isinstance(item, list): # 如果元素是列表,则递归调用traverse_list函数
traverse_list(item)
elif isinstance(item, dict): # 如果元素是字典,则打印键值对
for key, value in item.items():
print(key, value)
else: # 其他情况直接打印元素
print(item)
# 测试数据
data = [
[1, 2, 3],
[4, 5, 6],
{'a': 7, 'b': 8},
[9, {'c': 10, 'd': 11}],
]
traverse_list(data)
上述代码中,traverse_list
函数用于遍历多层列表。它首先检查元素是否为列表,如果是,则递归调用自身来处理嵌套列表。如果元素是字典,则使用.items()
方法依次打印键值对。如果元素不是列表或字典,则直接打印元素。
运行上述代码,将会输出以下结果:
1
2
3
4
5
6
a 7
b 8
9
c 10
d 11
这样就可以正确遍历由字典嵌套的多层列表了。