Contar digitos en un string

Chema Cortes pych3m4 en gmail.com
Jue Dic 18 12:11:58 CET 2008


El 2008/12/17 Arnau Sanchez <pyarnau en gmail.com> escribió:
> Chema Cortes escribió:
>
>> 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.
>
> Sí, ¿pero no hay que considerar además que cada count() debe recorrer
> completa la lista? aún así, seguro que ésta es la forma más rápida, de largo
> (debido a que la iteración la hace en C en vez de en Python).

El count() se puede implementar fácilmente en C, usando tan sólo los
registros del procesador como almacenamiento temporal; mientras que el
uso de iteradores obliga a mantener un "contexto" de ejecución cuyo
intercambio suele ser bastante costoso.

Python sorprende por tener algunas funciones que están muy
optimizadas; pero los iteradores siguen siendo, en general, una de las
soluciones más escalables que podemos usar. En la cuentas de Francesc
faltaría saber cuál fue el consumo de memoria de cada uno de los
algoritmos.
_______________________________________________
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