In [35]: ll = [(x,x*x) for x in range(100)]Function calls always add a bit of overhead:
In [36]: def f1(obj):
....: for row in obj:
....: x = row[0]
....: y = row[1]
....:
In [37]: def f2(obj):
....: for row in obj:
....: x,y = row
....:
In [38]: def f3(obj):
....: for row in obj:
....: x,y = (row[0],row[1])
....:
In [39]: timing(f1,10000,ll)
f1 2.04
In [40]: timing(f2,10000,ll)
f2 0.8
In [41]: timing(f3,10000,ll)
f3 2.41
def f1(obj):
x = min(obj,0.0)
def f3(obj):
if obj <= 0.0:
x = obj
else:
x = 0.0
In [56]: timing(f1,10000,5.)
f1 0.06
In [57]: timing(f1,10000,-5.)
f1 0.05
In [67]: timing(f3,10000,5.)
f3 0.04
In [68]: timing(f3,10000,-5.)
f3 0.04
Useful to know.
No comments:
Post a Comment