我正在尝试创建一个返回学生模块平均值的函数。学生的数据存储在包含以下内容的列表中,因此Dave具有:('Dave', 0, 'none', 'M106', ['50'])
然后奥利有:('Ollie', 'M104', 0, 'none', ['60'])
。我无法理解如何从两个平均值中获得平均值。
def moduleAverage(self):
if student.getAverage is > 0:
return self.moduleAverage
答案 0 :(得分:0)
好的,首先我要说:纠正你的缩进。 所以我现在做一个小例子:
studentDetails = []
studentDetails.append(('Peter', ['40']))
studentDetails.append(('Frank', ['100']))
studentDetails.append(('Ernest', ['40']))
def moduleAverage(inList):
total = 0.0
for i in xrange(0, len(inList)):
total += float(inList[i][1][0]) # the score is at the index 1 in the tuple (('Peter', ['40']))
return (total / float(len(inList)))
print moduleAverage(studentDetails)
注意:您将单个标记['40']作为字符串,因此您必须将其转换为浮点数。 在学生元组中也保持相同的顺序。 我不知道你的整个结构,所以我只是用你在问题中提到的带有元组的算法做了一个简单的例子。