Zadanie:
do funkcji sumUp() przez parametr przekazano listę zawierającą serie ocen sędziowskich pewnej liczby zawodników w konkursie skoków do wody. Lista zawiera wszystkie oceny wszystkich zawodników w taki sposób, że pierwszych pięć elementów to oceny pierwszego zawodnika, kolejnych pięć elementów - drugiego zawodnika itd.
Funkcja powinna po każdej serii danych dotyczących jednego zawodnika dodać do listy ocenę końcową tego zawodnika, powstałą przez zsumowanie jego ocen po odrzuceniu oceń skrajnych: największej i najmniejszej. Przykład:
Wejście: [ 4, 5, 5, 6, 5, 4, 5, 4, 5, 5, 3, 3, 5, 2, 4]
Wyjście: [ 4, 5, 5, 6, 5, 15, 4, 5, 4, 5, 5, 14, 3, 3, 5, 2, 4, 10 ]
język python
Odpowiedź:
def sumUp(scores):
final_scores = []
for i in range(0, len(scores), 5):
sub_list = scores[i:i+5]
sub_list.sort()
sub_list.pop(0)
sub_list.pop(-1)
final_score = sum(sub_list)
final_scores.append(final_score)
return final_scores
Wyjaśnienie:
Funkcja przyjmuje listę ocen jako argument, następnie używa pętli for do iteracji przez listę i dzieli ją na podlisty, po pięć elementów każda, reprezentujące oceny jednego zawodnika. Każda podlista jest sortowana, a następnie usuwane są największa i najmniejsza ocena. Oceny pozostałe są zsumowane i dodawane do listy final_scores.