1

私は現在、合計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 を使用しています。

4

1 に答える 1