extract elements of n char from a list
Mark McEahern
marklists at mceahern.com
Fri Jul 26 14:07:31 EDT 2002
for what it's worth, on my system, it's not until you get 1,000,000 elements
in the list that the difference between list comprehensions and filter
begins to show--so i'd say flip a coin and pick one.
// m
#! /usr/bin/env python
from time import clock
def time_it(f, *args, **kwargs):
time_in = clock()
result = f(*args, **kwargs)
time_out = clock()
return time_out - time_in, result
def filter_with_lc(list_to_filter, predicate):
return [x for x in list_to_filter if predicate(x)]
def filter_with_filter(list_to_filter, predicate):
return filter(predicate, list_to_filter)
def odd(n):
return n % 2 != 0
def show(func, results, delta):
print "%s: %1.3f" % (func.func_name, delta)
if __name__ == "__main__":
import sys
default = 1000
try:
size = int(sys.argv[1])
except IndexError:
size = default
original = range(size)
t1, r1 = time_it(filter_with_lc, original, odd)
t2, r2 = time_it(filter_with_filter, original, odd)
assert r1 == r2
show(filter_with_lc, r1, t1)
show(filter_with_filter, r2, t2)
More information about the Python-list
mailing list