在学习练习中,我们被要求遍历一个多维列表并在单个函数/for 循环中打印其所有值。
我的大脑陷入了递归函数应该如何工作的基础知识上,通过一些在线示例,我想出了我认为的答案,但它停在第一个列表上,其中包含它找到的值。
我的训练有什么错误?
def walk(l):
for v in l:
if type(v) is list:
return walk(v)
else:
print(v)
l = [
[1,2,3],
[4,5,6],
[7,8,9]
]
walk(l)
>>1
>>2
>>3
最佳答案
删除 return 语句,因为它会阻止您进入 for 循环中的下一次迭代(当您调用 walk(l) 时,它会检查第一个子列表并发现它是一个list 然后遇到 return,这会停止当前函数的执行,因此不会再进入下一次迭代,只会执行 walk([1,2,3]) 并打印出来结果):
def walk(l):
for v in l:
if type(v) is list:
walk(v)
else:
print(v)
walk(l)
1
2
3
4
5
6
7
8
9
关于python - python中递归遍历列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41710249/