linying002 发表于 2024-2-1 18:31:38

023讲min_row = [1024] * row max_col = [0] * col是什么意思?

本帖最后由 linying002 于 2024-2-1 18:32 编辑

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

min_row = *row
max_col = *col

for i in range(row):
    for j in range(col):
      min_row = matrix if matrix < min_row else min_row
      max_col = matrix if matrix > max_col else max_col

for i in range(row):
    for j in range(col):
      if matrix == min_row and matrix == max_col:
            print("幸运元素是:", matrix)
---------------------------------------------------------------------------------------------------------
023讲动动手1找矩阵钟的幸运数字有几个地方不理解。
0.
min_row = *row
   max_col = *col
这两行代码是什么意思?*row, 1024(最大值)乘以行数怎么会等于行数的最小值呢?
同理,max_col = *col,0(最小值)乘以列数怎么会等于列数的最大值呢?

1.
min_row = matrix if matrix < min_row else min_row
这行代码为什么可以连着写,把if else都写进去了,却不需要换行?

2.
min_row = matrix if matrix < min_row else min_row
这行代码什么意思呢?

FishC 发表于 2024-2-1 18:32:12

首先回答第0个问题:min_row = *row和max_col = *col是错误的代码,它们不是有效的Python表达式。在这里应该使用min_row = row和max_col = col,它们的作用是为了记录矩阵的行数和列数。

接下来回答第1个问题:min_row = matrix if matrix < min_row else min_row。这是一个简单的条件表达式,它与传统的if-else语句等效。

可以将其拆解为以下形式:
if matrix < min_row:
    min_row = matrix
else:
    min_row = min_row

这行代码的意思是:如果matrix小于min_row,则将min_row赋值为matrix,否则将min_row保持不变。

最后回答第2个问题:代码块中的两行min_row = matrix if matrix < min_row else min_row和max_col = matrix if matrix > max_col else max_col,意思是将矩阵中的元素逐个与min_row和max_col进行比较,并根据条件判断来更新min_row和max_col的值。

整个程序的作用是找到矩阵中的幸运元素,即既是最小值又是最大值的元素,并打印出来。但是需要注意的是,代码中的判断条件可能有问题,因为min_row和max_col的初始值都设置为了0,这可能导致幸运元素无法被正确地找到。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 023讲min_row = [1024] * row max_col = [0] * col是什么意思?