import random, sys HAVE_ANYALL = sys.version_info[:2] >= (2, 5) a = [random.randint(100, sys.maxint) for i in xrange(100000)] # # Test if any elements in the list are either: # 1) < 100 # 2) < 100000 # def time_any_genexp(n): for i in range(n): any(i < 100 for i in a) any(i < 100000 for i in a) if not HAVE_ANYALL: del time_any_genexp def time_any_listcomp(n): for i in range(n): any([i < 100 for i in a]) any([i < 100000 for i in a]) if not HAVE_ANYALL: del time_any_listcomp def _any100(l): for i in l: if i < 100: return True return False def _any100000(l): for i in l: if i < 100000: return True return False def time_any_loop(n): for i in range(n): _any100(a) _any100000(a) def time_any_bool_genexp(n): for i in range(n): True in (i < 100 for i in a) True in (i < 100000 for i in a) def time_any_bool_listcomp(n): for i in range(n): True in [i < 100 for i in a] True in [i < 100000 for i in a] # # Test if all elements in the list are: # 1) >= 100 # 2) >= 100000 # def time_all_genexp(n): for i in range(n): all(i >= 100 for i in a) all(i >= 100000 for i in a) if not HAVE_ANYALL: del time_all_genexp def time_all_listcomp(n): for i in range(n): all([i >= 100 for i in a]) all([i >= 100000 for i in a]) if not HAVE_ANYALL: del time_all_listcomp def _all100(l): for i in l: if i < 100: return False return True def _all100000(l): for i in l: if i < 100000: return False return True def time_all_loop(n): for i in range(n): _all100(a) _all100000(a) def time_all_bool_genexp(n): for i in range(n): False in (i >= 100 for i in a) False in (i >= 100000 for i in a) def time_all_bool_listcomp(n): for i in range(n): False in [i >= 100 for i in a] False in [i >= 100000 for i in a]