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