Python求各列表最大值的平均数

问题遇到的现象和发生背景

求各列表最大值的平均数,虽然解答有些暴力,但是这种方法并没有算出正确值,哪里错了

问题相关代码,请勿粘贴截图
list_1 = eval(input())
# Please your code here
list_max = []
for i in list_1:
    for k in range(len(i)-1):
        imax = i[k]
        if i[k+1] >= i[k]:
            imax = i[k+1]
        else:
            pass
    list_max.append(imax)     
sum = 0
for item in list_max:
    sum = sum + item
a = sum / len(list_max)
print('%.2f' % a)

运行结果及报错内容

第一次:

[[1,2,3,4],[2,3,4,5],[3,4,5,6]]
5.00

第二次:

[[4,2,3,1],[5,3,4,2],[6,4,5,3]]
4.00

第三次:

[[54, 28, 88, 99, 77],[99, 6, 37, 68, 83],[90, 52, 36, 4, 53],[85, 66, 11, 11, 61],[20, 52, 9, 81, 61],[23, 67, 37, 39, 18],[21, 36, 66, 80, 30],[74, 80, 5, 7, 96],[30, 35, 71, 73, 4],[40, 67, 67, 11, 71]]
73.60
我的解答思路和尝试过的方法

前两次只是列表中的顺序改变,结果却不一样
思路:用循环遍历列表,找出该列表最大值并加入创建的空列表中,最后求和求平均值

我想要达到的结果
[[54, 28, 88, 99, 77],[99, 6, 37, 68, 83],[90, 52, 36, 4, 53],[85, 66, 11, 11, 61],[20, 52, 9, 81, 61],[23, 67, 37, 39, 18],[21, 36, 66, 80, 30],[74, 80, 5, 7, 96],[30, 35, 71, 73, 4],[40, 67, 67, 11, 71]]
84.10

最终求这个列表的结果,正确答案是:84.10

两个错误:

  1. imax每次内循环都会被改变
  2. 比较的是相邻两个值 i[k+1] 和 i[k] 的大小
     for k in range(len(i)-1):
         imax = i[k]
         if i[k+1] >= i[k]:
             imax = i[k+1]
    

基于你的代码,可以做以下修改:

list_1 = eval(input())
# Please your code here
list_max = []
for i in list_1:
    imax = i[0]
    for k in range(len(i)-1):
        if i[k+1] >= imax:
            imax = i[k+1]
        else:
            pass
    list_max.append(imax)     
sum = 0
for item in list_max:
    sum = sum + item
a = sum / len(list_max)
print('%.2f' % a)

你把imax = i[k]写进循环里面了,那不是把上次保存的最大值给覆盖了吗
应该在循环外面写imax=i[0]
此外,你一直在比较i[k]和i[k+1],没有拿imax去跟i[k]比呀
有max函数可以简单做到这个工作,不要重复造轮子