import timeit
# List creation needs to be inside the timing loop for a fair timing
# of the mutative option, so we time the list creation and subtract the
# time from the other timings.
list_creation = r'''
a = [0, 1] * 7
'''
using_loop = list_creation + r'''
for n, i in enumerate(a):
if i == 1:
a[n] = 10
'''
using_comprehension = list_creation + r'''
b = [10 if x==1 else x for x in a]
'''
list_creation_time = timeit.timeit(list_creation, number=1000000)
loop_time = timeit.timeit(using_loop, number=1000000) - list_creation_time
comprehension_time = timeit.timeit(using_comprehension, number=1000000) - list_creation_time
print("Loop time: ", loop_time)
print("Comprehension time:", comprehension_time)
aW1wb3J0IHRpbWVpdAoKIyBMaXN0IGNyZWF0aW9uIG5lZWRzIHRvIGJlIGluc2lkZSB0aGUgdGltaW5nIGxvb3AgZm9yIGEgZmFpciB0aW1pbmcKIyBvZiB0aGUgbXV0YXRpdmUgb3B0aW9uLCBzbyB3ZSB0aW1lIHRoZSBsaXN0IGNyZWF0aW9uIGFuZCBzdWJ0cmFjdCB0aGUKIyB0aW1lIGZyb20gdGhlIG90aGVyIHRpbWluZ3MuCgpsaXN0X2NyZWF0aW9uID0gcicnJwphID0gWzAsIDFdICogNwonJycKCnVzaW5nX2xvb3AgPSBsaXN0X2NyZWF0aW9uICsgcicnJwpmb3IgbiwgaSBpbiBlbnVtZXJhdGUoYSk6CiAgICBpZiBpID09IDE6CiAgICAgICAgYVtuXSA9IDEwCicnJwoKdXNpbmdfY29tcHJlaGVuc2lvbiA9IGxpc3RfY3JlYXRpb24gKyByJycnCmIgPSBbMTAgaWYgeD09MSBlbHNlIHggZm9yIHggaW4gYV0KJycnCgpsaXN0X2NyZWF0aW9uX3RpbWUgPSB0aW1laXQudGltZWl0KGxpc3RfY3JlYXRpb24sIG51bWJlcj0xMDAwMDAwKQpsb29wX3RpbWUgPSB0aW1laXQudGltZWl0KHVzaW5nX2xvb3AsIG51bWJlcj0xMDAwMDAwKSAtIGxpc3RfY3JlYXRpb25fdGltZQpjb21wcmVoZW5zaW9uX3RpbWUgPSB0aW1laXQudGltZWl0KHVzaW5nX2NvbXByZWhlbnNpb24sIG51bWJlcj0xMDAwMDAwKSAtIGxpc3RfY3JlYXRpb25fdGltZQoKcHJpbnQoIkxvb3AgdGltZTogICAgICAgICAiLCBsb29wX3RpbWUpCnByaW50KCJDb21wcmVoZW5zaW9uIHRpbWU6IiwgY29tcHJlaGVuc2lvbl90aW1lKQ==