Python二维数组首尾行相乘实现方法 现有代码问题咨询
功能实现修复方案
原有代码问题点
- 内外层循环重复使用
i作为遍历变量,会覆盖外层循环的计数,导致行输入逻辑存在隐藏风险 - 行相乘逻辑完全不符合需求:错误遍历所有行,使用索引值而非矩阵元素做乘法,还不断向原矩阵追加无效内容,破坏了原始矩阵结构
- 没有单独提取第一行、最后一行做对应位置的元素计算
修复后可运行代码
table = [] rows = int(input("输入矩阵行数: ")) col = int(input("输入矩阵列数: ")) # 输入矩阵逻辑 for i in range(rows): array = [] # 内层循环换用j作为变量,避免和外层变量冲突 for j in range(col): array.append(int(input(f"输入第{i+1}行第{j+1}列的元素: "))) table.append(array) # 打印原始矩阵 print("输入的原始矩阵为:", table) # 提取第一行和最后一行做对应位置元素相乘 first_row = table[0] last_row = table[-1] multiply_result = [first_row[idx] * last_row[idx] for idx in range(col)] print("第一行与最后一行对应元素相乘结果为:", multiply_result) # 若需要将相乘结果作为新行追加到原矩阵末尾,可取消注释下方代码 # table.append(multiply_result) # print("追加乘积行后的矩阵为:", table)
运行逻辑说明
- 按照提示依次输入矩阵行数、列数,再按顺序输入每个位置的元素
- 程序先输出你输入的完整二维矩阵
- 最终输出第一行和最后一行每个位置对应相乘的结果列表
- 按需可以选择将乘积结果作为新行追加到原矩阵中
内容的提问来源于stack exchange,提问作者Jorge
相关产品推荐
相关产品推荐

