Se il numero di elementi è dispari la mediana è data dall’elemento centrale nella lista ordinata.
Se il numero di elementi è pari la mediana è data dalla media aritmetica dei due elementi al centro della lista ordinata.
Soluzione 1
lista = [1, 8, 1, 1, 9, 2, 8]
lista.sort() # [1, 1, 1, 2, 8, 8, 9]
n = len(lista) # 7
centro = n//2 # 3
if(n%2 == 1): # 7%2 == 1 Sì
mediana = lista[centro] # 2
else:
mediana = (lista[centro-1]+lista[centro])/2
Soluzione 2
Se la lista originale deve rimanere inalterata realizza una copia ordinata e continua a lavorare su di essa
lista = [1, 8, 1, 1, 9, 2, 8]
lista2 = sorted(lista) # [1, 1, 1, 2, 8, 8, 9]
...
Soluzione 3
Da Python 3.4 è disponibile il modulo statistics
import statistics
lista = [1, 8, 1, 1, 9, 2, 8]
mediana = statistics.median(lista)