Contar digitos en un string

antonio a.porrua en gmail.com
Mie Dic 17 11:01:22 CET 2008


El mié, 17-12-2008 a las 02:51 +0100, Chema Cortes escribió:
> El Tuesday 16 December 2008 23:33:28 Arnau Sanchez escribió:
> > lasizoillo escribió:
> > >> ¿Como podría hacer para contar el número de digitos ( números ) en una
> > >> cadena de texto?
> > >
> > > In [1]: a = "asdfsadf234dfs234sdf45345"
> > >
> > > In [2]: len([x for x in a if x.isdigit()])
> > > Out[2]: 11
> >
> > Correcto, pero se crea una lista intermedia que usa memoria sin necesidad.
> >
> > Una alternativa es usar generadores:
> >  >>> sum(1 for c in a if c.isdigit())
> >
> > 11
> 
> Había pensado en esta alternativa, pero sus ventajas no compensa el liar más 
> el código. Por lo general, este tipo de comprobaciones se hacen en la 
> introducción de datos en formularios, por lo que las cadenas no suelen ser 
> demasiado largas.
> 
> Pero si es por optimizar, ésta sería una mejor solución:
> 
>  sum(a.count(c) for c in "0123456789")
> 
> Son sólo 9 sumas, independientemente de la longitud de la cadena.

hablando de optimización.

¿No será más rápido, y ocupará menos memoria hacer la suma "a mano"?
x=0
for i in a:
	if i>="0" and i<="9":
		x+=1


------------ próxima parte ------------
_______________________________________________
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