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 
percN  = int(perc*N)  #  2, Numero di elementi da troncare
percN2 = percN//2     #  1, Numero di elementi da troncare da un lato
NN     = N-percN      #  8, Numero di elementi effettivamente elaborati
...

Soluzione 1

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

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

Soluzione 2…

Usa la funzione predefinita sum() applicata alla sottolista

...
lista  = sorted(LISTA)
totale = sum(lista[percN2 : -percN2])
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(percN2):
     minimo  = min(lista)
     massimo = max(lista)
    lista.remove(minimo)
    lista.remove(massimo)
totale = sum(lista)
media  = totale/NN