我有一個hw任務,我剛剛完成,但它看起來非常可怕,知道這是一個更簡單和有效的方式來獲得正確的輸出,但我不能像出來。繼承人是任務的目標。 寫存儲在2D列表中的下列值的程序(這些將被硬編碼):以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
2d列表的打印在下面完成,我的問題是計算最大值和平均值。
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
這打印上半部分,但我寫的代碼來計算最大值和平均值是不好的。對於最大我基本comared所有索引在列與彼此與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?
或類似的東西在那裏我不是手動添加每個索引號的每一列和行。最大的一個我不知道如何做一個循環。也可以使用無列表方法。只能使用append和len()。任何幫助?
你認爲什麼是「列表方式」? 'max'也包括在內? – justhalf
在你的'for data in data'循環中,'numbers'將依次佔用'data'中的三行,但是你從不使用它。有效的是,由於'data'中有三行,因此您只需重複該循環中的代碼三次,每次都是一樣的。 – askewchan
如圖所示,您的'c = c + 1'行不在'while c <4'循環內。因此,'c'將保持爲零,並且while循環將繼續無限地繼續。 – askewchan