Contar digitos en un string

Chema Cortes py en ch3m4.org
Mie Dic 17 02:51:21 CET 2008


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.

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.python.org/pipermail/python-es/attachments/20081217/2dba756e/attachment.pgp>
------------ 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