Is there any iteration style we must use to get faster processing
time? I've tried with some style to concat number in list. But I still
don't know which one is the recommended style.
[color=blue][color=green][color=darkred]
>>> def useListIteratio n():[/color][/color][/color]
list = [str(element) for element in range(5)]
result = ""
for item in list:
result += item
return result
[color=blue][color=green][color=darkred]
>>> def useNormalIterat ion():[/color][/color][/color]
list = [str(element) for element in range(5)]
result = ""
for index in range(len(list) ):
result += list[index]
return result
[color=blue][color=green][color=darkred]
>>> def useJoin():[/color][/color][/color]
list = [str(element) for element in range(5)]
return "".join(lis t)
[color=blue][color=green][color=darkred]
>>> useListIteratio n()[/color][/color][/color]
'01234'[color=blue][color=green][color=darkred]
>>> useNormalIterat ion()[/color][/color][/color]
'01234'[color=blue][color=green][color=darkred]
>>> useJoin()[/color][/color][/color]
'01234'[color=blue][color=green][color=darkred]
>>> def getTimer():[/color][/color][/color]
from timeit import Timer
t1 = Timer("useListI teration", "from __main__ import
useListIteratio n")
t2 = Timer("useNorma lIteration", "from __main__ import
useNormalIterat ion")
t3 = Timer("useJoin" , "from __main__ import useJoin")
print "Using list iteration: ", min(t1.repeat() )
print "Using normal iteration: ", min(t2.repeat() )
print "Using join: " , min(t3.repeat() )
[color=blue][color=green][color=darkred]
>>> getTimer()[/color][/color][/color]
Using list iteration: 0.0700158819068
Using normal iteration: 0.0701589168456
Using join: 0.0685698880724[color=blue][color=green][color=darkred]
>>> getTimer()[/color][/color][/color]
Using list iteration: 0.070928567737
Using normal iteration: 0.0698613929983
Using join: 0.0693454056312[color=blue][color=green][color=darkred]
>>> getTimer()[/color][/color][/color]
Using list iteration: 0.0683511451874
Using normal iteration: 0.0698585993471
Using join: 0.0708022947051[color=blue][color=green][color=darkred]
>>>[/color][/color][/color]
time? I've tried with some style to concat number in list. But I still
don't know which one is the recommended style.
[color=blue][color=green][color=darkred]
>>> def useListIteratio n():[/color][/color][/color]
list = [str(element) for element in range(5)]
result = ""
for item in list:
result += item
return result
[color=blue][color=green][color=darkred]
>>> def useNormalIterat ion():[/color][/color][/color]
list = [str(element) for element in range(5)]
result = ""
for index in range(len(list) ):
result += list[index]
return result
[color=blue][color=green][color=darkred]
>>> def useJoin():[/color][/color][/color]
list = [str(element) for element in range(5)]
return "".join(lis t)
[color=blue][color=green][color=darkred]
>>> useListIteratio n()[/color][/color][/color]
'01234'[color=blue][color=green][color=darkred]
>>> useNormalIterat ion()[/color][/color][/color]
'01234'[color=blue][color=green][color=darkred]
>>> useJoin()[/color][/color][/color]
'01234'[color=blue][color=green][color=darkred]
>>> def getTimer():[/color][/color][/color]
from timeit import Timer
t1 = Timer("useListI teration", "from __main__ import
useListIteratio n")
t2 = Timer("useNorma lIteration", "from __main__ import
useNormalIterat ion")
t3 = Timer("useJoin" , "from __main__ import useJoin")
print "Using list iteration: ", min(t1.repeat() )
print "Using normal iteration: ", min(t2.repeat() )
print "Using join: " , min(t3.repeat() )
[color=blue][color=green][color=darkred]
>>> getTimer()[/color][/color][/color]
Using list iteration: 0.0700158819068
Using normal iteration: 0.0701589168456
Using join: 0.0685698880724[color=blue][color=green][color=darkred]
>>> getTimer()[/color][/color][/color]
Using list iteration: 0.070928567737
Using normal iteration: 0.0698613929983
Using join: 0.0693454056312[color=blue][color=green][color=darkred]
>>> getTimer()[/color][/color][/color]
Using list iteration: 0.0683511451874
Using normal iteration: 0.0698585993471
Using join: 0.0708022947051[color=blue][color=green][color=darkred]
>>>[/color][/color][/color]
Comment