Foro de elhacker.net

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
  1. def maximo(lista):
  2.    if len(lista) > 0:
  3.        candidato = lista [0]
  4.        for elemento in lista:
  5.            if elemento > candidato:
  6.                candidato = elemento
  7.    else:
  8.        candidato = None
  9.  
  10.    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
  1. List = [1, 2, 1, 5, 0, 3]
  2. def Promedio(plist):
  3.    if len(plist)>0:
  4.        return reduce(lambda x,y:x+y,plist)/len(plist)
  5.    return 0
  6.  
  7. 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
: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.

Código:
[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
  1. def fMedia(sList):
  2.    sSuma = 0
  3.    if len(sList)>0:
  4.     for i in sList:
  5.       sSuma += i
  6.     return sSuma / len(sList)
  7.    else:
  8. 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
  1. 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