Вложенное понимание, которое вы ищете, выглядит следующим образом:
>>> D = {
...: ('a','b') : 1,
...: ('x','y','z') : 2
...:}
>>>
>>> {k_i:v for k, v in D.items() for k_i in k}
>>> {'a': 1, 'b': 1, 'x': 2, 'y': 2, 'z': 2}
, который можно записать с помощью традиционных for
циклов, таких как:
>>> result = {}
>>> for k, v in D.items():
...: for k_i in k:
...: result[k_i] = v
...:
>>> result
>>> {'a': 1, 'b': 1, 'x': 2, 'y': 2, 'z': 2}
Бонус: itertools
злоупотреблять!
>>> from itertools import repeat, chain
>>> dict(chain.from_iterable(zip(k, repeat(v)) for k, v in D.items()))
>>> {'a': 1, 'b': 1, 'x': 2, 'y': 2, 'z': 2}