Tim Hochberg wrote:
> Here's one more that's quite fast using Psyco, but only average without
> it.
> def flatten6():
> n = min(len(xdata), len(ydata))
> result = [None] * (2*n)
> for i in xrange(n):
> result[2*i] = xdata[i]
> result[2*i+1] = ydata[i]
I you require len(xdata) == len(ydata) there's an easy way to move the loop
into C:
def flatten7():
n = len(xdata)
assert len(ydata) == n
result = [None] * (2*n)
result[::2] = xdata
result[1::2] = ydata
return result
$ python -m timeit 'from flatten import flatten6 as f' 'f()'
1000 loops, best of 3: 847 usec per loop
$ python -m timeit 'from flatten import flatten7 as f' 'f()'
10000 loops, best of 3: 43.9 usec per loop
Peter
--
http://mail.python.org/mailman/listinfo/python-list