Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: Meta en 25 Noviembre 2010, 12:10 PM

Título: [Python] - La media de una lista
Publicado por: Meta en 25 Noviembre 2010, 12:10 PM
Hola:

Quiero calcular la media de una lista.

Ver ejercicio... (http://www.subeimagenes.com/img/gdfghfhfghgj-7785.jpg)

Código (python) [Seleccionar]
def maximo(lista):
    if len(lista) > 0:
        candidato = lista [0]
        for elemento in lista:
            if elemento > candidato:
                candidato = elemento
    else:
        candidato = None

    return candidato


No se hacer lo que te devuelva la media.
Título: Re: [Python] - La media de una lista
Publicado por: Novlucker en 25 Noviembre 2010, 12:18 PM
Realmente no entiendo nada de tu code ... que función se supone que cumple "candidato"? Simplemente debes de sumar todo y dividir

Código (python) [Seleccionar]
List = [1, 2, 1, 5, 0, 3]
def Promedio(plist):
    if len(plist)>0:
        return reduce(lambda x,y:x+y,plist)/len(plist)
    return 0

print 'Promedio: ',Promedio(List)


Seguro no es así como lo tienes que hacer, pero te estoy dando ideas y un code con el cual verificar resultados :P

Saludos
Título: Re: [Python] - La media de una lista
Publicado por: Meta en 25 Noviembre 2010, 13:38 PM
Tu código como resultado es 2.

Está bien, aunque me da la impresión que se puede hacer sin usar el lambda como muestra aquí.
http://es.diveintopython.org/apihelper_lambda.html
http://docs.python.org/tutorial/controlflow.html

Gracias.
Título: Re: [Python] - La media de una lista
Publicado por: Novlucker en 25 Noviembre 2010, 14:13 PM
Creo que hay algo que no se entiende, hay tropecientas maneras de hacer la misma cosa y yo he preferido hacerlo con lambda, tu debes de hacerlo como más te plazca o te lo pida la letra (si estas estudiando funciones, entonces con funciones).

Intento hacerte un bien, parece que solo buscaras una solución a tu ejercicio para archivar, así que he optado por dar la solución sin dar la solución.

Saludos
Título: Re: [Python] - La media de una lista
Publicado por: Karcrack en 25 Noviembre 2010, 16:50 PM
La media es la suma de todos los valores partida por dos la cantidad de elementos...
Modifico; Razon? Retraso mental >:D
Título: Re: [Python] - La media de una lista
Publicado por: Novlucker en 25 Noviembre 2010, 17:01 PM
:huh:
Título: Re: [Python] - La media de una lista
Publicado por: Shell Root en 25 Noviembre 2010, 17:18 PM
La media aritmética? xD
Título: Re: [Python] - La media de una lista
Publicado por: Meta en 25 Noviembre 2010, 20:09 PM
Gracias.

Quiero entender todo, hacer como dices, para archivar y no olvidar (Ya me tienen calado, ;)). Muchas gracias por su tiempo campeón, me han ayudado mucho en comprender muchas cosas.

;)
Título: Re: [Python] - La media de una lista
Publicado por: Karcrack en 25 Noviembre 2010, 21:13 PM
Cita de: Novlucker en 25 Noviembre 2010, 17:01 PM
:huh:
:-[
Título: Re: [Python] - La media de una lista
Publicado por: .:WindHack:. en 25 Noviembre 2010, 21:50 PM
La media es la suma de todos los valores dividido por el número total de datos.

[1, 2, 1, 5, 0, 3]
2



Aquí otra solución, porque como bien dice Novlucker: «Hay tropecientas maneras de hacer la misma cosa...»

Código (python) [Seleccionar]
def fMedia(sList):
    sSuma = 0
    if len(sList)>0:
    for i in sList:
       sSuma += i
    return sSuma / len(sList)
    else:
return 0
Título: Re: [Python] - La media de una lista
Publicado por: Meta en 25 Noviembre 2010, 22:53 PM
Gracias, este  me gusta más, lo guardaré en mis apuntes también.

Lo quiero así porque en el PDF (http://marmota.act.uji.es/mtp/pdf/python.pdf) no usan lo indicado arriba, cuando llegue a esos capítulos me callo.
Título: Re: [Python] - La media de una lista
Publicado por: Ragnarok en 25 Noviembre 2010, 23:13 PM
Código (python) [Seleccionar]
def avg(l): return sum(l)/len(l) if len(l) > 0 else 0

http://docs.python.org/py3k/library/functions.html
Título: Re: [Python] - La media de una lista
Publicado por: Meta en 26 Noviembre 2010, 00:26 AM
Está bueno y m uy corto el código.
Título: Re: [Python] - La media de una lista
Publicado por: Novlucker en 26 Noviembre 2010, 13:57 PM
El code de Ragnarok sin dudas es la mejor opción si lo vas a hacer en "verdad", pero tu con eso no aprendes nada sobre bucles y funciones Meta, salvo que la función sum calcula listas :xD

Saludos