pairs from a list
Alan Isaac
aisaac at american.edu
Tue Jan 22 13:09:39 EST 2008
Arnaud Delobelle wrote:
> pairs4 wins.
Oops. I see a smaller difference,
but yes, pairs4 wins.
Alan Isaac
import time
from itertools import islice, izip
x = range(500001)
def pairs1(x):
return izip(islice(x,0,None,2),islice(x,1,None,2))
def pairs2(x):
xiter = iter(x)
while True:
yield xiter.next(), xiter.next()
def pairs3(x):
for i in range( len(x)//2 ):
yield x[2*i], x[2*i+1],
def pairs4(x):
xiter = iter(x)
return izip(xiter,xiter)
t = time.clock()
for x1, x2 in pairs1(x):
pass
t1 = time.clock() - t
t = time.clock()
for x1, x2 in pairs2(x):
pass
t2 = time.clock() - t
t = time.clock()
for x1, x2 in pairs3(x):
pass
t3 = time.clock() - t
t = time.clock()
for x1, x2 in pairs4(x):
pass
t4 = time.clock() - t
print t1, t2, t3, t4
Output:
0.317524154606 1.13436847421 1.07100930426 0.262926712753
More information about the Python-list
mailing list