Contar digitos en un string
Daniel Garcia Moreno
dani en danigm.net
Mie Dic 17 11:26:39 CET 2008
El mié, 17-12-2008 a las 11:01 +0100, antonio escribió:
> 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
Esto hace algo parecido a lo que dijo Arnau, pero en más líneas.
------------ 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