def replace():
'''Using try-except'''
myl = [1, 2, 3, 4, 5, 4, 4, 4, 4, 6, 6, 9, 4, 2, 2, 22, 99, 0, 100, 100, 34, 55]
# myl.extend ([100] * 100)
while True:
try:
myl[ myl.index (4) ] = 44
except:
break
def replace2():
'''Using slice-assign'''
myl = [1, 2, 3, 4, 5, 4, 4, 4, 4, 6, 6, 9, 4, 2, 2, 22, 99, 0, 100, 100, 34, 55]
# myl.extend ([100] * 100)
myl[:] = [x if x != 4 else 44 for x in myl]
def replace3():
'''Using enumerate'''
myl = [1, 2, 3, 4, 5, 4, 4, 4, 4, 6, 6, 9, 4, 2, 2, 22, 99, 0, 100, 100, 34, 55]
# myl.extend ([100] * 100)
for idx, item in enumerate(myl):
if item == 4:
myl[idx] = 44
import timeit
#print(timeit.timeit("test()", setup="from __main__ import test"))
print(timeit.timeit("replace()", setup="from __main__ import replace")), replace.func_doc
print(timeit.timeit("replace2()", setup="from __main__ import replace2")), replace2.func_doc
print(timeit.timeit("replace3()", setup="from __main__ import replace3")), replace3.func_doc
ZGVmIHJlcGxhY2UoKToKICAnJydVc2luZyB0cnktZXhjZXB0JycnCiAgbXlsID0gWzEsIDIsIDMsIDQsIDUsIDQsIDQsIDQsIDQsIDYsIDYsIDksIDQsIDIsIDIsIDIyLCA5OSwgMCwgMTAwLCAxMDAsIDM0LCA1NV0KICAjIG15bC5leHRlbmQgKFsxMDBdICogMTAwKQogIHdoaWxlIFRydWU6IAogICAgdHJ5OiAKICAgICAgbXlsWyBteWwuaW5kZXggKDQpIF0gPSA0NCAKICAgIGV4Y2VwdDogCiAgICAgIGJyZWFrCgpkZWYgcmVwbGFjZTIoKToKICAnJydVc2luZyBzbGljZS1hc3NpZ24nJycgCiAgbXlsID0gWzEsIDIsIDMsIDQsIDUsIDQsIDQsIDQsIDQsIDYsIDYsIDksIDQsIDIsIDIsIDIyLCA5OSwgMCwgMTAwLCAxMDAsIDM0LCA1NV0KICAjIG15bC5leHRlbmQgKFsxMDBdICogMTAwKQoJCiAgbXlsWzpdID0gW3ggaWYgeCAhPSA0IGVsc2UgNDQgZm9yIHggaW4gbXlsXQoKZGVmIHJlcGxhY2UzKCk6CiAgJycnVXNpbmcgZW51bWVyYXRlJycnCiAgbXlsID0gWzEsIDIsIDMsIDQsIDUsIDQsIDQsIDQsIDQsIDYsIDYsIDksIDQsIDIsIDIsIDIyLCA5OSwgMCwgMTAwLCAxMDAsIDM0LCA1NV0KICAjIG15bC5leHRlbmQgKFsxMDBdICogMTAwKQoJCiAgZm9yIGlkeCwgaXRlbSBpbiBlbnVtZXJhdGUobXlsKTogCiAgICBpZiBpdGVtID09IDQ6CiAgICAgICAgbXlsW2lkeF0gPSA0NAogICAgICAgIAppbXBvcnQgdGltZWl0CiNwcmludCh0aW1laXQudGltZWl0KCJ0ZXN0KCkiLCBzZXR1cD0iZnJvbSBfX21haW5fXyBpbXBvcnQgdGVzdCIpKQpwcmludCh0aW1laXQudGltZWl0KCJyZXBsYWNlKCkiLCBzZXR1cD0iZnJvbSBfX21haW5fXyBpbXBvcnQgcmVwbGFjZSIpKSwgcmVwbGFjZS5mdW5jX2RvYwpwcmludCh0aW1laXQudGltZWl0KCJyZXBsYWNlMigpIiwgc2V0dXA9ImZyb20gX19tYWluX18gaW1wb3J0IHJlcGxhY2UyIikpLCByZXBsYWNlMi5mdW5jX2RvYwpwcmludCh0aW1laXQudGltZWl0KCJyZXBsYWNlMygpIiwgc2V0dXA9ImZyb20gX19tYWluX18gaW1wb3J0IHJlcGxhY2UzIikpLCByZXBsYWNlMy5mdW5jX2RvYwo=