Jul-03-2018, 11:59 AM
(Jul-03-2018, 11:27 AM)gruntfutuk Wrote: I didn't run time it.
import timeit import string my_string = 'DS80A98SD09a8SD098ASD098A09sd8c0a9SCNAfsdg8fbvdfad098098f00A'*1000 def count_func(s): return sum(c.isdigit() for c in s) def smart_count_digits(my_string): orig_length = len(my_string) for digit in string.digits: my_string = my_string.replace(digit, '') return orig_length - len(my_string) elapsed = timeit.timeit('count_func(my_string)', number=1000, setup='from __main__ import count_func, my_string') print( 'count_func took {:.3f} sec'.format(elapsed)) elapsed = timeit.timeit('smart_count_digits(my_string)', number=1000, setup='from __main__ import smart_count_digits, my_string') print('smart_count_digits took {:.3f} sec'.format(elapsed))
Output:count_func took 15.112 sec
smart_count_digits took 1.181 sec
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs