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