if key in dict python time complexity
"""
Time complexity of looking for a value in a hashable object is O(1). Dictionary
keys are hashable.
The code below is just for demonstration purposes, feel free to run it and see
that the plot has no correlation with n.
"""
from time import time as now
import matplotlib.pyplot as plt
from numpy.random import randint
from tqdm import tqdm
max_n = 100000
samples_per_n = 10
dummy_dict = dict()
n = [i for i in range (max_n)]
time = []
for i in tqdm(range(max_n), desc='Looking for keys as dictionary grows in size...'):
dummy_dict[i] = i
times = []
for _ in range(samples_per_n):
dummy_key = randint(low=0, high=max_n)
start = now()
if dummy_key in dummy_dict:
pass
times.append (now() - start)
time.append(sum(times) / len(times))
plt.plot(n, time)
plt.xlabel('N')
plt.ylabel('Time[s]')
plt.ylim(-0.02, 0.02)
plt.show()