ハードウェアの割り当てが完了したばかりですが、正しい出力を取得するためのはるかに簡単で効率的な方法があることを知っていると、かなり恐ろしいように見えますが、それを理解できないようです。これが課題の目的です。次の値を 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
2 次元リストの印刷は以下で行われました。私の問題は最大値と平均値を計算することです。
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 METHODS も使用できます。append と len() のみ使用できます。何か助けはありますか?