# !/usr/bin/python3
# -*- coding: utf-8 -*-
'''
Dictionary flip profiling
'''
import cProfile, pstats
from datetime import datetime
from faker import Faker
fake = Faker()
res = assoc_mock_array = {}
Faker.seed(0)
assoc_mock_array = fake.pydict(nb_elements = 900, variable_nb_elements = False, value_types = ['int'])
i = 1
while i < 22:
for k, v in assoc_mock_array.copy().items():
new_key = (k[:6] + k[:2] + str(i)) if len(k + k) > 8 else k + k
assoc_mock_array[new_key] = 999999-v+i
i += 1
def custom_timer():
return int(datetime.now().timestamp()*1000000)
# ===================
def swap_loop(mock_dict):
return dict((v,k) for k,v in mock_dict.items())
def swap_zip(mock_dict):
return dict(zip(mock_dict.values(), mock_dict.keys()))
def swap_map(mock_dict):
return dict(map(reversed, mock_dict.items()))
def swap_slice(mock_dict):
return {mock_dict[i]:i for i in mock_dict}
def swap_map_lambda(mock_dict):
return dict(map(lambda x: x[::-1], mock_dict.items()))
pr = cProfile.Profile(custom_timer, 0.000001, subcalls=False, builtins=False)
pr.enable()
swap_loop(assoc_mock_array.copy())
swap_map(assoc_mock_array.copy())
swap_map_lambda(assoc_mock_array.copy())
swap_slice(assoc_mock_array.copy())
swap_zip(assoc_mock_array.copy())
pr.disable()
pstats.Stats(pr).sort_stats('name').print_stats('swap_')
print('End!')
Click Run or press shift + ENTER to run code