Media troncata

Calcolare la media aritmetica escludendo una percentuale prefissata di valori agli estremi

LISTA = [3, 7, 8, 4, 4, 9, 6, 8, 7, 6]   #  Sequenza di voti
perc  = 0.20                             #  Percentuale da troncare

Nella prima fase bisogna calcolare il numero di voti da escludere

...
N   = len(LISTA)  # 10, Numero di elementi 
pN  = int(p*N)    #  2, Numero di elementi da troncare
pN2 = pN//2       #  1, Numero di elementi da troncare da un lato
NN  = N-pN        #  8, Numero di elementi effettivamente elaborati
...

Soluzione 1

Se i numeri sono ordinati è sufficiente escludere dalla somma i primi pN2 e gli ultimi pN2

...
lista  = sorted(LISTA)
totale = 0
for i in range(pN2, N-pN2):
    totale += lista[i]
media = totale/NN

Soluzione 2

Usa la funzione predefinita sum() applicata alla sottolista

...
lista  = sorted(LISTA)
totale = sum(lista[pN2 : -pN2])
media  = totale/NN

Soluzione 3

Senza ordinare la lista?
Individua i valori minimi e massimi e li rimuove dalla lista (?)

...
lista = LISTA[:]  # Copia tutta la lista
for i in range(pN2):
     minimo  = min(lista); lista.remove(minimo)
     massimo = max(lista); lista.remove(massimo)

totale = sum(lista)
media  = totale/NN