You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python统计矩阵列表中指定数字的出现次数

Python矩阵指定数字计数函数实现方案

现有代码存在两个核心问题:

  • 函数内部没有实现计数逻辑,也没有返回值
  • 函数定义范围内直接调用自身,运行会触发递归深度超限错误

实现方案

方案1:嵌套循环实现(易读性优先)

适合新手理解逻辑,代码可读性高:

def count(matrix: list, number: int):
    total = 0
    # 遍历矩阵每一行
    for row in matrix:
        # 遍历当前行的每个元素
        for num in row:
            if num == number:
                total += 1
    return total

# 测试调用
print(count([[1, 4, 0, 0, 6, 3], [0, 3, 4, 0, 0, 0], [0, 0, 5, 6, 0]], 0))

运行后输出结果为9,和测试用例中数字0的实际出现次数一致。

方案2:生成器表达式实现(简洁性优先)

代码更精简,运行效率和方案1无明显差异:

def count(matrix: list, number: int):
    return sum(num == number for row in matrix for num in row)

# 测试调用
print(count([[1, 4, 0, 0, 6, 3], [0, 3, 4, 0, 0, 0], [0, 0, 5, 6, 0]], 0))

这里利用了Python中布尔值属于int子类的特性,True等价于1、False等价于0,直接求和即可得到总匹配次数。

可选:增加异常兼容处理

如果使用场景存在输入不规范的可能(比如矩阵中某行不是列表、元素类型不统一),可以增加类型判断逻辑避免报错:

def count(matrix: list, number: int):
    total = 0
    for row in matrix:
        # 跳过非列表格式的行
        if not isinstance(row, list):
            continue
        for num in row:
            if num == number:
                total += 1
    return total

内容的提问来源于stack exchange,提问作者newatcoding22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 08:57:00