Contar digitos en un string

José Francisco Calvo josefranciscocalvo en gmail.com
Mie Dic 17 21:17:42 CET 2008


Arnau Sanchez escribió:
> 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!
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Lista de correo Python-es 
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
Impresionante hilo, me han encantado las soluciones que habéis aportado, 
lástima que no se me ocurra ninguna mejor, se ve mucho nivel en una sola 
línea.

-- 
------------------------------
José Francisco Calvo
josefranciscocalvo en gmail.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