鱼C论坛

 找回密码
 立即注册
查看: 2938|回复: 6

[已解决]作业不懂

[复制链接]
发表于 2022-4-29 14:28:45 | 显示全部楼层 |阅读模式

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

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

x
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
这里不懂为什么是赋值的1024和0
        min_row[i] = min(matrix[i][j], min_row[i])这里=后面的min是内置函数吗?
        max_col[j] = max(matrix[i][j], max_col[j])
最佳答案
2022-5-1 09:52:34


这里不懂为什么是赋值的1024和0


主要是因为一个查找最小值(min_row),一个查找最小值(max_col)

所以将 最小值列表,初始化为 比原矩阵都大的值,将最大值列表 初始化比原矩阵都小的值

这样在进行比较时,就能替换掉初始化的值为矩阵中最小或最大的值了,主要就是初始化作用

这里=后面的min是内置函数吗?


min 和 max 都是内置函数,返回参数中的 最小值 或 最大值

参数可以是多参 或者 可迭代对象、集合、字典,需要注意字典是比较 key 键大小,不是比较值 value ,而且输入的对象要能够相互比较
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-29 14:53:01 | 显示全部楼层
是的,是用来求一个序列中最小值的,函数体:
min(lst,key)
其中 lst 是序列,key 是干扰排序算法的东西,现在还不需要知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-1 09:52:34 | 显示全部楼层    本楼为最佳答案   


这里不懂为什么是赋值的1024和0


主要是因为一个查找最小值(min_row),一个查找最小值(max_col)

所以将 最小值列表,初始化为 比原矩阵都大的值,将最大值列表 初始化比原矩阵都小的值

这样在进行比较时,就能替换掉初始化的值为矩阵中最小或最大的值了,主要就是初始化作用

这里=后面的min是内置函数吗?


min 和 max 都是内置函数,返回参数中的 最小值 或 最大值

参数可以是多参 或者 可迭代对象、集合、字典,需要注意字典是比较 key 键大小,不是比较值 value ,而且输入的对象要能够相互比较
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-5 10:16:54 | 显示全部楼层
Twilight6 发表于 2022-5-1 09:52
主要是因为一个查找最小值(min_row),一个查找最小值(max_col)

所以将 最小值列表,初始化为  ...

谢谢大佬,爱你哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-5 11:10:34 | 显示全部楼层
小希子 发表于 2022-5-5 10:16
谢谢大佬,爱你哦

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

使用道具 举报

发表于 2022-11-18 15:16:07 | 显示全部楼层
这是我的代码, 太丑了
matrix = [[10, 36, 52],
          [33, 24, 88],
          [66, 76, 99]]
row_min = []
temp_list = []
clo_max = []
row_range = len(matrix)
clo_range = len(matrix[0])
for i in range(row_range):
    temp_list.append([])

for i in range(row_range):
    for k in range(clo_range):
        if min(min(matrix[i]), 1024) not in row_min:
            row_min.append(min(min(matrix[i]), 1024))
        temp_list[i].append(matrix[k][i])

for i in range(len(temp_list)):
    clo_max.append(max(max(temp_list[i]), 0))
print(row_min, clo_max)

for i in range(row_range):
    for k in range(clo_range):
        if row_min[i] == clo_max[k]:
           print('位于列表中第', i+1, '行', '第', k+1, '个元素为幸运数字', matrix[i][k])

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

使用道具 举报

发表于 2022-11-18 17:06:35 | 显示全部楼层
练习练习
matrix = [[10, 36, 52], [33, 24, 88], [66, 76, 99]]

for arr in matrix:
    num = min(arr)
    if max([list(col) for col in zip(*matrix)][arr.index(num)]) == num:
        print(num)
        break
else:
    print("沒有符合條件的元素")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 16:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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