Pero el reto es que la lista inicial no sea alterada...es decir...sin usar el sort a la lista inicial.
Lo que intente, es crear otra lista igual a la inicial, y a ella aplicar el sort, pero de todas formas me altera la lista inicial...porque pasa eso?
Código Python:
Ver original
def mediana(a): b = a b.sort() if len(a)%2!=0: mediana = b[len(a)/2] else: mediana = (b[(len(a)/2)-1]+b[len(a)/2])/2 return mediana a = [5.0, 1.4, 3.2, 0.1] print mediana(a)
EDITO:
Ahora probe con otro codigo, e igualmente me altera la lista inicial, siendo que estoy trabajando con otra lista aparte "copiada" a la original.
Finalmente me queda la lista "a" sin ningun elemento, siendo que a la lista b estoy aplicandole el remove.
Código Python:
Ver original
def mediana(a): b = a lista = [] for A in range (len(a)): c = min(b) b.remove(c) lista.append(c) print lista if len(a)%2!=0: mediana = b[len(a)/2] else: mediana = (lista[(len(a)/2)-1]+lista[len(a)/2])/2 return mediana
Exitos!