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

Python生成全42值10x10矩阵 列表推导式/原生循环实现求助

10x10矩阵操作实现方案

原生循环实现

核心思路:逐行逐列生成初始全42矩阵,按需求遍历对应位置修改元素,最后全量遍历统计符合条件的元素个数。

# 生成10x10全42矩阵
matrix_loop = []
for i in range(10):
    row = []
    for j in range(10):
        row.append(42)
    matrix_loop.append(row)

# 对角线元素乘4(位置为i == j)
for i in range(10):
    matrix_loop[i][i] *= 4

# 第7行(从1开始计数,对应索引为6)所有元素除以2
for j in range(10):
    matrix_loop[6][j] /= 2

# 第1、3列(从1开始计数,对应索引为0、2)所有元素加17
for i in range(10):
    matrix_loop[i][0] += 17
    matrix_loop[i][2] += 17

# 统计数值大于42的元素总个数
count_loop = 0
for row in matrix_loop:
    for num in row:
        if num > 42:
            count_loop += 1

单独单元格执行打印结果:

print(count_loop)

列表推导式实现

核心思路:用嵌套列表推导式简化初始矩阵生成、元素修改的逻辑,用生成器推导式完成统计,减少显式循环嵌套代码量。

# 生成10x10全42矩阵
matrix_comp = [[42 for _ in range(10)] for _ in range(10)]

# 对角线元素乘4
matrix_comp = [[num * 4 if i == j else num for j, num in enumerate(row)] for i, row in enumerate(matrix_comp)]

# 第7行(对应索引6)所有元素除以2
matrix_comp = [[num / 2 if i == 6 else num for j, num in enumerate(row)] for i, row in enumerate(matrix_comp)]

# 第1、3列(对应索引0、2)所有元素加17
matrix_comp = [[num + 17 if j in (0, 2) else num for j, num in enumerate(row)] for i, row in enumerate(matrix_comp)]

# 统计数值大于42的元素总个数
count_comp = sum(1 for row in matrix_comp for num in row if num > 42)

单独单元格执行打印结果:

print(count_comp)

Numpy实现参考(供逻辑对照)

import numpy as np

# 生成10x10全42矩阵
matrix_np = np.full((10, 10), 42, dtype=np.float64)

# 对角线元素乘4
np.fill_diagonal(matrix_np, matrix_np.diagonal() * 4)

# 第7行(对应索引6)所有元素除以2
matrix_np[6] /= 2

# 第1、3列(对应索引0、2)所有元素加17
matrix_np[:, [0, 2]] += 17

# 统计数值大于42的元素总个数
count_np = np.sum(matrix_np > 42)

单独单元格执行打印结果:

print(count_np)

提示:使用timeit做性能测试时,仅保留核心的矩阵生成、修改、统计代码即可,打印逻辑单独放在非计时单元格,避免重复输出干扰性能统计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:27:03