飞花落尽 发表于 2021-7-10 11:10:57

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

说明:假设给定一个 m * n 的矩阵,如果某一个元素的值在同一行的所有元素中最小,并且在同一列的所有元素中最大,那么该元素便是幸运数字。

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

s = [,
   ,
   ]
a = *3
minx = *3

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

b = []
for i in range(3):
    j = 0
    count = 0
    while j < 3:
      if minx >= s]:
            j += 1
            count +=1
      if count ==3:
            b.append(minx)
print(b)

逃兵 发表于 2021-7-10 11:10:58

s = [,
   ,
   ]

s1 = list(zip(*s))

for m in range(len(s)):
    for n in range(len(s)):
      if min(s) == max(s1):
            print(s)

飞花落尽 发表于 2021-7-10 11:59:58

逃兵 发表于 2021-7-10 11:39


zip 是什么函数{:10_254:}

也帮忙看看我的代码怎么错了{:5_109:}

学渣李某人 发表于 2021-7-10 16:07:27

飞花落尽 发表于 2021-7-10 11:59
zip 是什么函数

也帮忙看看我的代码怎么错了

zip: 将两个可迭代对象一对一打包, 多的截断

如:
a =
b =
print(zip(a, b))
得到:
[(1, 4), (2, 5), (3, 6)]

如:
a =
b =
print(zip(a, b))

和上面结果一样, 因为长的被截断了

飞花落尽 发表于 2021-7-10 17:00:52

学渣李某人 发表于 2021-7-10 16:07
zip: 将两个可迭代对象一对一打包, 多的截断

如:


那这个又list 又zip而且还有*号的是什么意思
s1 = list(zip(*s))

学渣李某人 发表于 2021-7-10 17:36:31

飞花落尽 发表于 2021-7-10 17:00
那这个又list 又zip而且还有*号的是什么意思
s1 = list(zip(*s))

*是解包
如:
a =
print(*a)
得到:
1, 2, 3, 4, 5

也就是把列表中所有元素都拿了出来

飞花落尽 发表于 2021-7-10 18:31:05

学渣李某人 发表于 2021-7-10 17:36
*是解包
如:



OK,谢谢你

Kayko 发表于 2021-7-11 10:44:15

了解
页: [1]
查看完整版本: 课后作业23,动手题,帮忙看看哪里出问题了(小白,望详解)