私は現在、合計3つの数字と識別子の2つのサブリストで構成されるリストを取得することを含むpythonの問題に取り組んでいます。プロシージャ名は compareTeams(lstTeams) で、シーズン数にわたるチームの平均勝率を計算するために使用することを意図しています。最初のリストは勝ったゲーム、2 番目のリストは負けたゲームです。問題の手順は、これらのリストのリストを取得し、合計ゲーム数に対して勝ったゲーム数を合計し、それをリストの長さで割ることによって、最高の平均を見つけようとします。どちらのリストも同じサイズです。次に、各リストの最初の要素としてタグ付けされた識別子を使用して、リストのペアとして最大から最小の順に平均を並べ替えます。例を提供するには:
teamA = [[6, 4, 8, 5, 0], [3, 6, 0, 2, 4], 'A'] avg winning percentage = 0.56
(私の説明が下手でわかりにくい場合は、チーム A の場合、パーセンテージは (6/9 + 4/10 + 8/8 + 5/7 + 0/4) / 5 として計算されます)
teamB = [[3, 6, 8, 2, 4], [3, 6, 8, 2, 4], 'B'] avg winning percentage = 0.50
teamC = [[3, 6, 8, 2, 4], [0, 0, 0, 0, 0], 'C'] avg winning percentage = 1
compareTeams([teamA, teamB, teamC]) gives [['C', 1],['A', 0.56],['B', 0.50]]
私はこの問題についてよく考えましたが、Python は初めてなので、すべてを正しく呼び出しているかどうかはわかりません。私が使用しているインタープリターは、実行してもプロシージャーを表示しません。これが私のコードです:
def compareTeams(lstTeams):
a = 0
x = 0
lst = []
y = lstTeams[a]
for a in range(0, len(y)):
x = x + ((float(y[0][0]) / (y[1][0])) / len(y[0]))
a = a + 1
lst.append(x)
return lst.reverse(lst.sort())
これは正しいです?私は何か間違ったことをしていますか?どんな助けでも大歓迎です。
注:これには python 2.7 を使用しています。