erro: os índices da lista devem ser números inteiros, não flutuantes para mediana

A tentativa de encontrar mediana, mas continua recebendo índices da lista, deve ser um número inteiro, não um erro de flutuação e não tenho certeza do que fazer.

sorted_data = sorted(data, key=lambda d:d.all_around_points_earned)
if len(data)%2==0:
    a = sorted_data[len(data)/2]
    b = sorted_data[len(data)/2-1]
    median_val = (a+b)/2
else:
    median_val = sorted_data[(len(data)-1)/2]
print(median_val) # median val

questionAnswers(2)

yourAnswerToTheQuestion