[Tutor] how to calculate execution time and complexity
Christian Witts
cwitts at compuscan.co.za
Fri Oct 28 08:20:22 CEST 2011
On 2011/10/28 07:38 AM, Praveen Singh wrote:
> >>> splitWord('google', 2)
> ['go', 'og', 'le']
>
> >>> splitWord('google', 3)
> ['goo', 'gle']
>
> >>> splitWord('apple', 1)
> ['a', 'p', 'p', 'l', 'e']
>
> >>> splitWord('apple', 4)
> ['appl', 'e']
>
>
>
> def splitWord(word, number):
> length=len(word)
> list1=[]
> x=0
> increment=number
> while number<=length+increment:
> list1.append(word[x:number])
> x=x+increment
>
> number=number+increment
>
> for d in list1:
> if d=='':
> list1.remove('')
> return list1
>
> I am getting the desired output and this code is working fine..but i think it is quite bulky for this small operation.
>
>
> qus.1-- can you guys suggest me some better solution??
> qus 2-- i know writing just a piece of code is not going to help me. i have to write efficient code.i want to know how to calculate execution time of my code and
>
> can you guys suggest me some links so that i can learn how to find complexity of code??
>
> Thanks in advance...
>
>
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
Below [1] is how I would write it, which is simply a re-factoring of
your code so it's cleaner and more compact. For calculating execution
time you can use the `timeit` module [2] and for more in-depth analysis
you can look at `profile` [3] and further to the bare-bones `dis` [4].
[1]
>>> def splitWord(word, number):
... x = []
... for y in xrange(0, len(word), number):
... x.append(word[y:y+number])
... return x
...
>>> splitWord('google', 1)
['g', 'o', 'o', 'g', 'l', 'e']
>>> splitWord('google', 2)
['go', 'og', 'le']
>>> splitWord('google', 3)
['goo', 'gle']
>>> splitWord('google', 4)
['goog', 'le']
>>> splitWord('google', 5)
['googl', 'e']
>>> splitWord('google', 6)
['google']
>>> splitWord('google', 7)
['google']
[2] http://www.doughellmann.com/PyMOTW/timeit/
[3] http://www.doughellmann.com/PyMOTW/profile/index.html#module-profile
[4] http://www.doughellmann.com/PyMOTW/dis/
--
Christian Witts
Python Developer
//
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20111028/d33d8dac/attachment.html>
More information about the Tutor
mailing list