language: Python (python 2.7.3)
date: 187 days 20 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env python
import timeit
 
first_transformation = lambda x: x + 1
second_transformation = lambda x: x + 1
third_transformation = lambda x: x + 1
 
n = 1000
my_list = list(range(1000))
 
def timeit_args(f, args, *timeit_args, **timeit_kwargs):
    def testf():
        f(*args)
    return timeit.timeit(testf, *timeit_args, **timeit_kwargs)
 
try:
    xrange
except NameError:
    xrange = range # Python 3
 
def one_pass(my_list):
    for i in xrange(0, len(my_list)):
        my_list[i] = first_transformation(my_list[i])
        my_list[i] = second_transformation(my_list[i])
        my_list[i] = third_transformation(my_list[i])
    return my_list
 
print('one_pass: ' + str(timeit_args(one_pass, [my_list], number=n)))
 
def multi_pass(my_list):
    range_end = len(my_list)
    for i in xrange(0, range_end):
       my_list[i] = first_transformation(my_list[i])
 
    for i in xrange(0, range_end):
       my_list[i] = second_transformation(my_list[i])
 
    for i in xrange(0, range_end):
       my_list[i] = third_transformation(my_list[i])
 
    return my_list
 
print('multi_pass: ' + str(timeit_args(multi_pass, [my_list], number=n)))
 
def simple(my_list):
    return [third_transformation(second_transformation(first_transformation(e))) for e in my_list]
 
print('simple: ' + str(timeit_args(simple, [my_list], number=n)))