私は以下の機能を持っています。これは最高の平均グレードを返すことを目指しています。それは時間の設定期間内に大きな入力を扱うように、どのように私はそれを改善することができます大きな入力を処理し、実行時の複雑さを改善する方法は?
scores = [["bob",100],["bob",100],["toto",100],["frank",100]]
: それは次のように入力を取りますか?つまり、ランタイムの複雑さをどのように改善するのでしょうか?
編集:それは負のスコアと空のスコアを処理する必要があります。
def maxavg(scores):
avs=[]
namelist=[]
for i in range(0,len(scores)):
name = scores[i][0]
if name not in namelist:
namelist.append(name)
note = scores[i][1]
nbnotes = 1
for j in range(i+1,len(scores)):
if scores[j][0]==name:
nbnotes+=1
note+=scores[j][1]
avs.append(note/nbnotes)
return max(avs)
1.辞書を使用します。 2.スコアを1回ですべて実行します。 – alexis