鱼C论坛

 找回密码
 立即注册
查看: 1375|回复: 2

[已解决]求助 第023讲:列表(V)课后测试题 动动手1. 请编程找出矩阵中的幸运数字

[复制链接]
发表于 2021-8-7 00:13:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 deweyoo 于 2021-8-7 00:14 编辑

求解 这个答案的解析, 尤其不太懂第17行      # 因为涉及付费内容以及给没有做题的同学提前泄露答案.  故没有贴出原题目内容, 仅贴出答案

matrix = [[10, 36, 52],
          [33, 24, 88],
          [66, 76, 99]]

row = len(matrix)
col = len(matrix[0])

min_row = [1024] * row
max_col = [0] * col

# 遍历矩阵中的每一个元素
# 找到每行中最小的元素,并将它们存放到列表min_row中
# 找到每列中最大的元素,并将它们存放到列表max_col中
for i in range(row):
    for j in range(col):
        min_row[i] = min(matrix[i][j], min_row[i])
        max_col[j] = max(matrix[i][j], max_col[j])

# 遍历矩阵中的每一个元素
# 判断是否同时满足“同一行的所有元素中最小”和“同一列的所有元素中最大”
for i in range(row):
    for j in range(col):
        if matrix[i][j] == min_row[i] and matrix[i][j] == max_col[j]:
            print(matrix[i][j])


17.  max_col[j] = max(matrix[i][j], max_col[j])    # 找到每列中最大的元素,并将它们存放到列表max_col中

这里的 j 每次迭代,  max_col 是否如下变化  

[[0], [0], [0]]

第一次迭代

[[10], [0], [0]]

第二次迭代

[[10], [36], [0]]

第三次迭代

[[10], [36], [52]]


和注释里要达到的目的似乎不一致,  还是我对这个迭代理解有误.  烦请大佬指点, 谢谢
最佳答案
2021-8-7 01:10:20
max_col变化如你所说,结果是对的,你可以用pycharm或vscode插断点观察每一步。
带入数据,就是3x3遍历。逐个数据分别和预设的最小值0,和最大值1024比较。
min_row里只存当前比较过的最小的,max_col只存当前比较过的最大的。
刚开始比较看不出结果,之后所有数据遍历完才能出真正的结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-7 01:10:20 | 显示全部楼层    本楼为最佳答案   
max_col变化如你所说,结果是对的,你可以用pycharm或vscode插断点观察每一步。
带入数据,就是3x3遍历。逐个数据分别和预设的最小值0,和最大值1024比较。
min_row里只存当前比较过的最小的,max_col只存当前比较过的最大的。
刚开始比较看不出结果,之后所有数据遍历完才能出真正的结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-9 22:32:04 | 显示全部楼层
本帖最后由 deweyoo 于 2021-8-9 22:40 编辑
suchocolate 发表于 2021-8-7 01:10
max_col变化如你所说,结果是对的,你可以用pycharm或vscode插断点观察每一步。
带入数据,就是3x3遍历。 ...


谢谢您的回复, 原来是我没有继续往下看外层 i  的循环, i 往后循环就能够实现提取出来每一列中的最大值了.

不得不佩服解题的公式设计, 还是自己没有编程思维哎.

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 15:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表