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
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to