Presentación y probabilidades
Víctor
victorpernand en gmail.com
Vie Abr 25 10:52:37 CEST 2008
Hola, un saludo a todos los de la lista. Soy novato en python. Tengo algunas
ideas sencillas que me gustaría llevar a la práctica, pero antes tengo que
aprender y practicar.
Para empezar, estoy intentando hacer una función de permita elegir entre los
elementos de una lista, según una lista de probabilidades. Por ejemplo, si
le doy la lista ['azul','rojo','verde'] y la lista de probabilidades en
tantos por cientos [50,25,25] o en cualquier otra relación como [ 2,1,1]
(que sería igual que el anterior), me devuelve uno de los tres colores,
según las probabilidades de apararición.
Esto es lo que he hecho hasta ahora:
from random import randint
def sumalista(lista):
"suma los elementos de una lista de numeros"
return reduce (lambda x,y: x+y, lista)
def decide(lista, probab):
tmp=[0]
for x in range(len(probab)):
tmp.append(probab[x]+tmp[x])
#normaliza a 1000
normaliza= [x*1000/sumalista(probab) for x in tmp]
num=randint(0,999)
elemento= len([x for x in normaliza if x<=num])-1
return lista[elemento]
Si hago
print decide(['platano','manzana'],[99,1])
parece que funciona. ¿Me podéis aconsejar?, y también recomendaciones sobre
usar listas de compresion o no, y el estilo python.
Muchas gracias de antemano.
Víctor
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es