📌  相关文章
📜  计算给定矩阵的每个元素中存在的数字(1)

📅  最后修改于: 2023-12-03 15:12:05.137000             🧑  作者: Mango

计算给定矩阵的每个元素中存在的数字

本程序旨在计算给定矩阵中每个元素中存在的数字。

输入

程序需要输入一个 n 行 m 列的矩阵,其中 $0 < n, m \leq 100$,矩阵元素为整数。

输出

程序将返回一个 n 行 m 列的矩阵,其中每个元素表示输入矩阵对应位置上存在的数字。

代码示例
def count_digits(matrix):
    """
    计算给定矩阵的每个元素中存在的数字
    :param matrix: 输入矩阵,包含 n 行 m 列
    :return: 返回一个 n 行 m 列的矩阵,其中每个元素表示输入矩阵对应位置上存在的数字
    """
    n = len(matrix)
    m = len(matrix[0])
    result = [[0 for j in range(m)] for i in range(n)]  # 初始化输出矩阵,全部赋值为 0

    for i in range(n):
        for j in range(m):
            digits = set(str(matrix[i][j]))
            result[i][j] = len(digits)

    return result
使用示例
matrix = [
    [1234, 5678, 90],
    [12345, 67890, 1]
]

print(count_digits(matrix))

输出:

[[4, 4, 2], [5, 5, 1]]
分析

对于每个矩阵元素,我们可以使用 set 将其转换为字符串,并使用 set 的特性自动去除重复字符,最后统计 set 的长度即可得到该元素中存在的数字数。此外,我们可以使用嵌套列表生成式初始化输出矩阵,效率相比先定义空列表再使用两个 for 循环赋值更高。