1
我目前正在研究一個python問題,涉及到一個列表包含2個數字和一個標識符的子列表,共三件事情。程序名稱爲compareTeams(lstTeams),用於計算多個賽季球隊的平均勝率。第一個名單是贏得的比賽,第二個名單是失敗的比賽。有問題的程序將列出這些列表,並嘗試通過將所有遊戲中獲勝的遊戲加起來,然後按列表長度將其排除,從而找到最高的平均值。兩個列表都具有相同的大小。然後按照從最大到最小的順序將平均值排序爲成對列表,並將標識符標記爲每個列表中的第一個元素。爲了提供一個例子:Python比較列表平均排序
teamA = [[6, 4, 8, 5, 0], [3, 6, 0, 2, 4], 'A'] avg winning percentage = 0.56
(如果我的解釋是差,難以遵循,爲teamA,這個比例計算公式爲(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())
這是正確的嗎?我做錯了什麼?任何幫助將不勝感激。
NOTE:我正在使用python 2.7。
完美的作品!謝謝,Ashwini。儘管如果我可能會問,那麼鍵和拉鍊究竟在做什麼呢?我從來沒有見過這些關鍵字。 – CodeRook 2013-05-07 02:21:02
@Gabe查看[docs](http://docs.python.org/2/library/functions.html#zip)上的一些zip示例。 'key'用於告訴排序函數使用什麼值來比較項目,所以這裏我使用了每個列表中的第二項來進行比較。 http://docs.python.org/2/howto/sorting.html – 2013-05-07 02:28:15
嗯,這對於當時的情況是有意義的。非常感激。 – CodeRook 2013-05-07 02:47:25