-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path336 timeit performance.py
59 lines (49 loc) · 1.99 KB
/
336 timeit performance.py
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
50
51
52
53
54
55
56
57
58
59
import timeit
locations = {0: "You are sitting in front of a computer learning Python",
1: "You are standing at the end of a road before a small brick building",
2: "You are at the top of a hill",
3: "You are inside a building, a well house for a small stream",
4: "You are in a valley beside a stream",
5: "You are in the forest"}
exits = {0: {"Q": 0},
1: {"W": 2, "E": 3, "N": 5, "S": 4, "Q": 0},
2: {"N": 5, "Q": 0},
3: {"W": 1, "Q": 0},
4: {"N": 1, "W": 2, "Q": 0},
5: {"W": 2, "S": 1, "Q": 0}}
print("nested for loops")
print("----------------")
nested_loop = """\
for loc in sorted(locations):
exits_to_destination_1 = []
for xit in exits:
if loc in exits[xit].values():
exits_to_destination_1.append((xit, locations[xit]))
print("Locations leading to {}".format(loc), end='\t')
print(exits_to_destination_1)
"""
print()
print("List comprehension inside a for loop")
print("------------------------------------")
loop_comp = """\
for loc in sorted(locations):
exits_to_destination_2 = [(xit, locations[xit]) for xit in exits if loc in exits[xit].values()]
print("Locations leading to {}".format(loc), end='\t')
print(exits_to_destination_2)
"""
print()
print("nested comprehension")
print("--------------------")
nested_comp = """\
exits_to_destination_3 = [[(xit, locations[xit]) for xit in exits if loc in exits[xit].values()]
for loc in sorted(locations)]
for index, loc in enumerate(exits_to_destination_3):
print("Locations leading to {}".format(index), end='\t')
print(loc)
"""
result_1 = timeit.timeit(nested_loop, globals=globals(), number=10000)
result_2 = timeit.timeit(loop_comp, globals=globals(), number=10000)
result_3 = timeit.timeit(nested_comp, globals=globals(), number=10000)
print("Nested loop:\t{}".format(result_1))
print("loop and comp:\t{}".format(result_2))
print("Nested comp:\t{}".format(result_3))