python - python中递归遍历列表

标签 python recursion python-3.5

在学习练习中,我们被要求遍历一个多维列表并在单个函数/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/

相关文章:

c++ - HILO 游戏,找不到号码时

python - 我们的sql安装: error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

Python HTTPServer 异常导致它失败

python - 基于一列元素对两个数组进行排序和连接

c# - ForEach TreeNode.Nodes 取出空节点

java - 递归数字打印

django - 属性错误: 'module' object has no attribute 'lru_cache'

python - 如何在异步函数中使用 'yield'?

python - Boost.Python : Fill in a passed in buffer in Python

python - 为什么 ColumnTransformer 不在其转换器上调用 fit?