Dict merge in a dict comprehension
问题 In python 3.5, we can merge dicts by using double-splat unpacking >>> d1 = {1: 'one', 2: 'two'} >>> d2 = {3: 'three'} >>> {**d1, **d2} {1: 'one', 2: 'two', 3: 'three'} Cool. It doesn't seem to generalise to dynamic use cases, though: >>> ds = [d1, d2] >>> {**d for d in ds} SyntaxError: dict unpacking cannot be used in dict comprehension Instead we have to do reduce(lambda x,y: {**x, **y}, ds, {}) , which seems a lot uglier. Why the "one obvious way to do it" is not allowed by the parser, when