import timeit s = 'd = dict(a=3, b=5)' s1 = """\ try: d['a'] except KeyError: pass """ s2 = """\ if 'a' in d: d['a'] """ print('always hit') print('try:', timeit.Timer(s1, s).timeit()) print('in :', timeit.Timer(s2, s).timeit()) s1 = """\ try: d['c'] except KeyError: pass """ s2 = """\ if 'c' in d: d['c'] """ print('always miss') print('try:', timeit.Timer(s1, s).timeit()) print('in :', timeit.Timer(s2, s).timeit()) s1 = """\ for k in 'ababaccccc': try: d[k] except KeyError: pass """ s2 = """\ for k in 'ababaccccc': if k in d: d[k] """ print('5 hit, 5 miss') print('try:', timeit.Timer(s1, s).timeit()) print('in :', timeit.Timer(s2, s).timeit()) s1 = """\ for k in 'ababababac': try: d[k] except KeyError: pass """ s2 = """\ for k in 'ababababac': if k in d: d[k] """ print('9 hit, 1 miss') print('try:', timeit.Timer(s1, s).timeit()) print('in :', timeit.Timer(s2, s).timeit())