score_A_B_1 = [[90.0, 97.0, 75.0, 92.0],[90.0, 97.0, 75.0, 92.0]]
score_A_B_2 = [[100.0, 92.0, 98.0, 100.0],[100.0, 92.0, 98.0, 100.0]]
score_A_B_3 = [[0.0, 87.0, 75.0, 22.0],[0.0, 87.0, 75.0, 22.0]]
scores = [score_A_B_1,score_A_B_2,score_A_B_3]
# Return the average of the number in the list
def average(lst_of_numbers):
return float(sum(lst_of_numbers))/len(lst_of_numbers)
# Return a weighted average of all list passed as parameter
# The weight is calculate as 100% divided by the lenght of the list
# eg. if the lenght of score_A_B = 2 ==> 100 / 2 ==> 50
# but we need a percentage so
# 50 / 100 ==> 0.5
# the weight of each element will 0.5
def get_weighted_average(score_A_Bs):
weighted_average = 0
for score_A_B in score_A_Bs:
weighted_average += average(score_A_B) * (100 / len(score_A_Bs)/100)
return weighted_average
# Return the average of the all list
def get_score_average(scores):
return average([get_weighted_average(score) for score in scores])
scores_average = get_score_average(scores)
print(scores_average)
c2NvcmVfQV9CXzEgPSBbWzkwLjAsIDk3LjAsIDc1LjAsIDkyLjBdLFs5MC4wLCA5Ny4wLCA3NS4wLCA5Mi4wXV0Kc2NvcmVfQV9CXzIgPSBbWzEwMC4wLCA5Mi4wLCA5OC4wLCAxMDAuMF0sWzEwMC4wLCA5Mi4wLCA5OC4wLCAxMDAuMF1dCnNjb3JlX0FfQl8zID0gW1swLjAsIDg3LjAsIDc1LjAsIDIyLjBdLFswLjAsIDg3LjAsIDc1LjAsIDIyLjBdXQoKc2NvcmVzID0gW3Njb3JlX0FfQl8xLHNjb3JlX0FfQl8yLHNjb3JlX0FfQl8zXQoKIyBSZXR1cm4gdGhlIGF2ZXJhZ2Ugb2YgdGhlIG51bWJlciBpbiB0aGUgbGlzdApkZWYgYXZlcmFnZShsc3Rfb2ZfbnVtYmVycyk6CglyZXR1cm4gZmxvYXQoc3VtKGxzdF9vZl9udW1iZXJzKSkvbGVuKGxzdF9vZl9udW1iZXJzKQoKIyBSZXR1cm4gYSB3ZWlnaHRlZCBhdmVyYWdlIG9mIGFsbCBsaXN0IHBhc3NlZCBhcyBwYXJhbWV0ZXIKIyBUaGUgd2VpZ2h0IGlzIGNhbGN1bGF0ZSBhcyAxMDAlIGRpdmlkZWQgYnkgdGhlIGxlbmdodCBvZiB0aGUgbGlzdAojIGVnLiBpZiB0aGUgbGVuZ2h0IG9mIHNjb3JlX0FfQiA9IDIgPT0+IDEwMCAvIDIgPT0+IDUwCiMgYnV0IHdlIG5lZWQgYSBwZXJjZW50YWdlIHNvCiMgNTAgLyAxMDAgPT0+IDAuNQojIHRoZSB3ZWlnaHQgb2YgZWFjaCBlbGVtZW50IHdpbGwgMC41CmRlZiBnZXRfd2VpZ2h0ZWRfYXZlcmFnZShzY29yZV9BX0JzKToKCXdlaWdodGVkX2F2ZXJhZ2UgPSAwCglmb3Igc2NvcmVfQV9CIGluIHNjb3JlX0FfQnM6CgkJd2VpZ2h0ZWRfYXZlcmFnZSArPSBhdmVyYWdlKHNjb3JlX0FfQikgKiAoMTAwIC8gbGVuKHNjb3JlX0FfQnMpLzEwMCkKCglyZXR1cm4gd2VpZ2h0ZWRfYXZlcmFnZQoKIyBSZXR1cm4gdGhlIGF2ZXJhZ2Ugb2YgdGhlIGFsbCBsaXN0CmRlZiBnZXRfc2NvcmVfYXZlcmFnZShzY29yZXMpOgoJcmV0dXJuIGF2ZXJhZ2UoW2dldF93ZWlnaHRlZF9hdmVyYWdlKHNjb3JlKSBmb3Igc2NvcmUgaW4gc2NvcmVzXSkKCgpzY29yZXNfYXZlcmFnZSA9IGdldF9zY29yZV9hdmVyYWdlKHNjb3JlcykKcHJpbnQoc2NvcmVzX2F2ZXJhZ2Up