求助 第023讲:列表(V)课后测试题 动动手1. 请编程找出矩阵中的幸运数字
本帖最后由 deweyoo 于 2021-8-7 00:14 编辑求解 这个答案的解析, 尤其不太懂第17行 # 因为涉及付费内容以及给没有做题的同学提前泄露答案.故没有贴出原题目内容, 仅贴出答案
matrix = [,
,
]
row = len(matrix)
col = len(matrix)
min_row = * row
max_col = * col
# 遍历矩阵中的每一个元素
# 找到每行中最小的元素,并将它们存放到列表min_row中
# 找到每列中最大的元素,并将它们存放到列表max_col中
for i in range(row):
for j in range(col):
min_row = min(matrix, min_row)
max_col = max(matrix, max_col)
# 遍历矩阵中的每一个元素
# 判断是否同时满足“同一行的所有元素中最小”和“同一列的所有元素中最大”
for i in range(row):
for j in range(col):
if matrix == min_row and matrix == max_col:
print(matrix)
17.max_col = max(matrix, max_col) # 找到每列中最大的元素,并将它们存放到列表max_col中
这里的 j 每次迭代,max_col 是否如下变化
[, , ]
第一次迭代
[, , ]
第二次迭代
[, , ]
第三次迭代
[, , ]
和注释里要达到的目的似乎不一致,还是我对这个迭代理解有误.烦请大佬指点, 谢谢 max_col变化如你所说,结果是对的,你可以用pycharm或vscode插断点观察每一步。
带入数据,就是3x3遍历。逐个数据分别和预设的最小值0,和最大值1024比较。
min_row里只存当前比较过的最小的,max_col只存当前比较过的最大的。
刚开始比较看不出结果,之后所有数据遍历完才能出真正的结果。
本帖最后由 deweyoo 于 2021-8-9 22:40 编辑
suchocolate 发表于 2021-8-7 01:10
max_col变化如你所说,结果是对的,你可以用pycharm或vscode插断点观察每一步。
带入数据,就是3x3遍历。 ...
谢谢您的回复, 原来是我没有继续往下看外层 i的循环, i 往后循环就能够实现提取出来每一列中的最大值了.
不得不佩服解题的公式设计, 还是自己没有编程思维哎.
页:
[1]