import time
import random
d1 = {}
d2 = {}
def gen():
for i in range(50000):
d1['key'+str(i)] = 'value' + str(i)
for i in range(500):
rnd_index = random.randint(1,50000)
d2['key'+str(rnd_index)] = 'value' + str(i)
def run():
start_time = time.time()
concat = [d1, d2]
keys = set().union(d1.keys(), d2.keys())
target = {}
for key in keys:
target[key] = list( target[key] for target in concat if key in target)
print(f"{(time.time() - start_time)} seconds")
gen()
run()
# around 0.06582760810852051 seconds
Например, ввод:
d1 = {'key1': 'val1', 'key2': 'val3'}
d2 = {'key1': 'val2', 'key2': 'val4', 'key3': 'val5'}
вывод:
{'key1': ['val1', 'val2'], 'key3': ['val5'], 'key2': ['val3', 'val4']}