鱼C论坛

 找回密码
 立即注册
查看: 1496|回复: 4

[已解决]python最新版23讲-动手题

[复制链接]
发表于 2023-8-23 21:48:39 | 显示全部楼层 |阅读模式

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

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

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

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

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

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

没看懂:
min_row = [1024] * row
max_col = [0] * col

        min_row[i] = min(matrix[i][j], min_row[i])
        max_col[j] = max(matrix[i][j], max_col[j])
最佳答案
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][j],将其与min_row[ i]比较,取较小的值更新min_row[ i],将其与max_col[j]比较,取较大的值更新max_col[j]。
最后再次遍历矩阵中的每个元素,判断是否同时满足“同一行的所有元素中最小”和“同一列的所有元素中最大”的条件,如果满足,则输出该元素的值。

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

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

本帖被以下淘专辑推荐:

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

使用道具 举报

发表于 2023-8-23 21:48:59 | 显示全部楼层
对于第一个问题中的代码段 matrix[ i].append(random.randint(0, 1024)),这段代码的作用是在二维列表 matrix 的第 i 行中添加一个随机生成的整数,范围从 0 到 1024。

对于第二个问题中的代码段:
min_row = [1024] * row
max_col = [0] * col
min_row[ i] = min(matrix[ i][j], min_row[ i])
max_col[j] = max(matrix[ i][j], max_col[j])

这段代码的作用是:

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

希望能帮助到您!如果还有其他疑问,请随时提出。
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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][j],将其与min_row[ i]比较,取较小的值更新min_row[ i],将其与max_col[j]比较,取较大的值更新max_col[j]。
最后再次遍历矩阵中的每个元素,判断是否同时满足“同一行的所有元素中最小”和“同一列的所有元素中最大”的条件,如果满足,则输出该元素的值。

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

min_row[ i] = min(matrix[ i][j], min_row[ i])这行代码是将matrix[ i][j]和min_row[ i]中的较小值赋给min_row[ i]。
max_col[j] = max(matrix[ i][j], max_col[j])这行代码是将matrix[ i][j]和max_col[j]中的较大值赋给max_col[j]。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

发表于 2023-8-25 10:25:15 | 显示全部楼层
对于代码中的这部分:
python
这段代码是在二维列表`matrix`中的第`i`行中添加一个随机整数。`random.randint(0, 1024)`会生成一个范围在0到1024之间(包括0和1024)的随机整数,并将其添加到`matrix[i]`这一行的末尾。

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

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

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

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

希望解释清楚了这部分代码!如果还有其他问题,请随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 17:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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