python - 递归计算嵌套数字列表中的出现次数

标签 python python-3.x recursion nested-lists flatten

我终于开始使用 Python 进行递归并尝试计算目标数字在 list 中出现的次数。但是,我遇到了计算嵌套数字 list 中出现次数的问题。

例如

def count(lst, target):

    if lst == []:
        return 0
    if lst[0] == target:
        return 1 + count(lst[1:], target)
    else:
        return 0 + count(lst[1:], target)

输出

>>> count( [1,2,3,[4,5,5],[[5,2,1],4,5],[3]], 1 )

输出:1

预期输出:2

有没有一种简单的方法可以在 Python 中展平嵌套列表?或者我可以用一种简单的方法来解释我的代码中存在嵌套列表这一事实?

最佳答案

def count(lst, target):
    n = 0
    for i in lst:
        if i == target:
            n += 1
        elif type(i) is list:
            n += count(i, target)
    return n

关于python - 递归计算嵌套数字列表中的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35448323/

相关文章:

python - Selenium:访问被拒绝

python - 使用非连接图或工具 Python 的车辆路径问题

arrays - 将数组中的项目替换为不同集合中的元素

c++ - 如何生成仅包含 0's and 9' 的数字

python - 如何通过 sys.argv 执行函数

java - 递归: How do I return value-1 from recursive function

r - 如何使用 R 中的递归创建长度为 n 的所有 2^n 二进制序列的矩阵?

python - 我应该如何指示尚未用 Python 编写测试?

python - 仅在检测到的对象内检测文本

python - 使用 Tweepy 和 MySQL 未引发的异常