鱼C论坛

 找回密码
 立即注册
查看: 3028|回复: 7

[已解决]课后作业23,动手题,帮忙看看哪里出问题了(小白,望详解)

[复制链接]
发表于 2021-7-10 11:10:57 | 显示全部楼层 |阅读模式
20鱼币
说明:假设给定一个 m * n 的矩阵,如果某一个元素的值在同一行的所有元素中最小,并且在同一列的所有元素中最大,那么该元素便是幸运数字。

我的思路:先找同一行中最小的数,并找出其列数 "a[i]",后用此数和它的列数比较同一列中每个数,判断其是否为最大的数。若是,添加到空列表b中,最后打印b。

s = [[10, 36, 52],
     [33, 24, 88],
     [66, 76, 99]]
a = [0]*3
minx = [0]*3

for i in range(3):
    for j in range(2):
        if s[i][j] <= s[i][j+1]:
            minx[i] = s[i][j]
            a[i] = j
        if s[i][j] > s[i][j+1]:
            minx[i] = s[i][j+1]
            a[i] = j+1

b = []
for i in range(3):
    j = 0
    count = 0
    while j < 3:
        if minx[i] >= s[j][a[i]]:
            j += 1
            count +=1
        if count ==3:
            b.append(minx[i])
print(b)
最佳答案
2021-7-10 11:10:58
  1. s = [[10, 36, 52],
  2.      [33, 24, 88],
  3.      [66, 76, 99]]

  4. s1 = list(zip(*s))

  5. for m in range(len(s)):
  6.     for n in range(len(s[m])):
  7.         if min(s[m]) == max(s1[n]):
  8.             print(s[m][n])
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-7-10 11:59:58 | 显示全部楼层

zip 是什么函数

也帮忙看看我的代码怎么错了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-7-10 17:00:52 | 显示全部楼层
学渣李某人 发表于 2021-7-10 16:07
zip: 将两个可迭代对象一对一打包, 多的截断

如:

那这个又list 又zip而且还有*号的是什么意思
s1 = list(zip(*s))
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-7-10 18:31:05 | 显示全部楼层

OK,谢谢你
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-22 09:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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