xka 发表于 2023-8-23 21:48:39

python最新版23讲-动手题

哭了 真的是没有看懂啊555
感谢师兄师姐!

---------------【0题】---------------
答案代码如下:
import random
   
# 创建并初始化二维列表
matrix = []
for i in range(88):
    matrix.append([])
    for j in range(88):
      matrix.append(random.randint(0, 1024))
   
target = int(input("请输入一个代匹配的整数:"))
   
# 匹配用户输入的整数
for i in range(88):
    for j in range(88):
      if matrix == target:
            print(i, j)

没看懂:
      matrix.append(random.randint(0, 1024))

---------------【1题】---------------
答案代码如下:
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)

没看懂:
min_row = * row
max_col = * col

      min_row = min(matrix, min_row)
      max_col = max(matrix, max_col)

陶远航 发表于 2023-8-23 21:48:59

对于第一个问题中的代码段 matrix[ i].append(random.randint(0, 1024)),这段代码的作用是在二维列表 matrix 的第 i 行中添加一个随机生成的整数,范围从 0 到 1024。

对于第二个问题中的代码段:

min_row = * row
max_col = * col
min_row[ i] = min(matrix[ i], min_row[ i])
max_col = max(matrix[ i], max_col)


这段代码的作用是:

1. 创建了一个名为 min_row 的列表,并用初始值 1024 初始化了 row 个元素。
2. 创建了一个名为 max_col 的列表,并用初始值 0 初始化了 col 个元素。
3. 将 matrix[ i] 和 min_row[ i] 中的较小值赋值给 min_row[ i],实际上就是更新了每一行中的最小值。
4. 将 matrix[ i] 和 max_col 中的较大值赋值给 max_col,实际上就是更新了每一列中的最大值。

希望能帮助到您!如果还有其他疑问,请随时提出。
如果问题已经解决,请设置最佳答案

isdkz 发表于 2023-8-23 21:49:14

【0题】
这段代码是创建一个88x88的二维列表matrix,并且对其进行初始化。然后通过用户输入一个整数target,遍历matrix中的每个元素,如果元素等于target,则输出对应的索引i和j。
其中,matrix[ i].append(random.randint(0, 1024))这行代码是在matrix的第i行末尾添加一个随机生成的整数,范围在0到1024之间。

【1题】
这段代码是对一个3x3的矩阵matrix进行处理。首先获取矩阵的行数row和列数col。然后创建两个列表min_row和max_col,分别用于存放每行最小元素和每列最大元素,初始值分别为1024和0。
接下来通过两层循环遍历矩阵中的每个元素,更新min_row和max_col的值。对于每个元素matrix[ i],将其与min_row[ i]比较,取较小的值更新min_row[ i],将其与max_col比较,取较大的值更新max_col。
最后再次遍历矩阵中的每个元素,判断是否同时满足“同一行的所有元素中最小”和“同一列的所有元素中最大”的条件,如果满足,则输出该元素的值。

min_row = * row这行代码是创建一个长度为row的列表min_row,并将所有元素初始化为1024。
max_col = * col这行代码是创建一个长度为col的列表max_col,并将所有元素初始化为0。

min_row[ i] = min(matrix[ i], min_row[ i])这行代码是将matrix[ i]和min_row[ i]中的较小值赋给min_row[ i]。
max_col = max(matrix[ i], max_col)这行代码是将matrix[ i]和max_col中的较大值赋给max_col。

xka 发表于 2023-8-24 10:15:01

isdkz 发表于 2023-8-23 21:49
【0题】
这段代码是创建一个88x88的二维列表matrix,并且对其进行初始化。然后通过用户输入一个整数target ...

超清楚!!!感恩!!!

琅琊王朝 发表于 2023-8-25 10:25:15

对于代码中的这部分:

python

这段代码是在二维列表`matrix`中的第`i`行中添加一个随机整数。`random.randint(0, 1024)`会生成一个范围在0到1024之间(包括0和1024)的随机整数,并将其添加到`matrix`这一行的末尾。

你可以将这段代码理解为为每一行添加了一个随机整数,用于初始化二维列表`matrix`。

对于这部分:

python

这段代码是用于计算矩阵中每行的最小值和每列的最大值。

- `min_row = * row`:这行代码创建了一个长度为`row`的列表`min_row`,并初始化所有元素为1024。
- `max_col = * col`:这行代码创建了一个长度为`col`的列表`max_col`,并初始化所有元素为0。

接下来的两个循环将遍历矩阵中的每个元素,并更新`min_row`和`max_col`的值,使其保持每行的最小值和每列的最大值。

希望解释清楚了这部分代码!如果还有其他问题,请随时提问。
页: [1]
查看完整版本: python最新版23讲-动手题