Contar digitos en un string

Arnau Sanchez pyarnau en gmail.com
Mie Dic 17 12:35:13 CET 2008


Francesc Alted escribió:

> In [45]: timeit len([x for x in a if x.isdigit()])
> 10 loops, best of 3: 14.3 ms per loop
> 
> In [46]: timeit sum(1 for c in a if c.isdigit())
> 10 loops, best of 3: 19 ms per loop
> 
> In [47]: timeit sum(a.count(c) for c in "0123456789")
> 100 loops, best of 3: 1.11 ms per loop
> 
> Por tanto, la solución de Chema es más de 10 veces más rápida que las 
> otras (para cadenas suficientemente largas).
> 
> Pues sí que da de sí esto de contar dígitos :-) 

Si nos pusiéramos a ello no dejaríamos de encontrar otras formas:

In [21]:timeit sum(1 for _ in re.finditer("\d", a))
100 loops, best of 3: 8.34 ms per loop

:-)

Pero la solución de Chema es imbatible!


-- 
Web: http://www.arnau-sanchez.com
------------ 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