如何编写lambda函数计算指定公式并通过while循环应用到3x3矩阵各元素
实现方法说明
关于lambda函数传参的疑问
你定义的y=lambda x: pow(x,2)-2*x + 3是单数值计算函数,不可以直接传入整个矩阵作为参数,Python原生列表不支持直接对全体元素做批量算术运算,直接传入会触发类型错误。
while循环遍历实现步骤
- 先定义待处理的3x3矩阵:
matrix = [[1,2,3], [5,6,7], [4,1,6]] - 初始化空结果矩阵存储计算后的值
- 外层用while循环遍历矩阵的每一行,行索引初始值为0,循环条件为行索引小于矩阵总行数
- 内层用while循环遍历当前行的每一列元素,列索引初始值为0,循环条件为列索引小于当前行总元素数
- 取出单个元素传入lambda函数计算,将结果存入对应位置,每次循环结束后对应索引自增1
完整可运行代码
# 定义计算函数 y = lambda x: pow(x,2) - 2*x + 3 # 定义待处理矩阵 matrix = [[1,2,3],[5,6,7],[4,1,6]] result = [] # 外层遍历行 row_idx = 0 while row_idx < len(matrix): cur_row = matrix[row_idx] res_row = [] col_idx = 0 # 内层遍历列 while col_idx < len(cur_row): res_row.append(y(cur_row[col_idx])) col_idx += 1 result.append(res_row) row_idx += 1 print(result)
运行后输出结果为:[[2, 3, 6], [18, 27, 38], [11, 2, 27]]
内容的提问来源于stack exchange,提问作者qhumphrey
相关产品推荐
相关产品推荐

