Если вы сначала найдете пересечение keys()
, вы можете создать словарь с пониманием.
Вы можете уменьшить () (благодаря UltraInstinct) над словарями с помощью __and__
, чтобы построить пересечениеключи.
import operator
# python 3
# from functools import reduce
dicts = [
{1: 10, 2: 20, 3: 30, 4: 40, 5: 50},
{1: 20, 3: 60, 5: 100},
{1: 10, 7: 70, 5: 55}
]
keys = reduce(operator.__and__, map(set, dicts)
{k: [d[k] for d in [d1, d2, d3]] for k in keys}
# {1: [10, 20, 10], 5: [50, 100, 55]}