我有一个硬件任务,我刚刚完成,但知道有一种更简单有效的方法来获得正确的输出,看起来非常可怕,但我似乎无法弄清楚。这是任务的目标。编写一个程序,将以下值存储在 2D 列表中(这些将被硬编码):
2.42 11.42 13.86 72.32
56.59 88.52 4.33 87.70
73.72 50.50 7.97 84.47
程序应确定每列的最大值和平均值
输出看起来像
2.42 11.42 13.86 72.32
56.59 88.52 4.33 87.70
73.72 50.50 7.97 84.47
============================
73.72 88.52 13.86 87.70 column max
44.24 50.15 8.72 81.50 column average
二维列表的打印在下面完成,我的问题是计算最大值和平均值。
data = [ [ 2.42, 11.42, 13.86, 72.32],
[ 56.59, 88.52, 4.33, 87.70],
[ 73.72, 50.50, 7.97, 84.47] ]
emptylist = []
r = 0
while r < 3:
c = 0
while c < 4 :
print "%5.2f" % data[r][c] ,
c = c + 1
r = r + 1
print
print "=" * 25
这会打印上半部分,但我编写的用于计算最大值和平均值的代码很糟糕。对于最大值,我基本上将列中的所有索引与 if、elif、语句相互关联,对于平均值,我将每列索引加在一起并取平均值,然后打印。无论如何,是否有某种循环来计算底部的东西。也许像下面这样
for numbers in data:
r = 0 #row index
c = 0 #column index
emptylist= []
while c < 4 :
while r < 3 :
sum = data[r][c]
totalsum = totalsum + sum
avg = totalsum / float(rows)
emptylist.append(avg) #not sure if this would work? here im just trying to
r = r + 1 #dump averages into an emptylist to print the values
c = c + 1 #in it later?
或类似的东西,我没有手动将每个索引号添加到每一列和每一行。最大的一个我不知道如何循环执行。也可以使用 NO LIST 方法。只能使用 append 和 len()。有什么帮助吗?