Ron Adam writes:
You would probably see it used more often like this...
def names(defaults, pos_names, pos_args, kwds): return {}.=update(defaults) \ .=update(zip(pos_names, pos_args) \ .=update(kwds)
I actually have a bunch of code in one of my apps that implements the same thing for a different reason (cascading configs), but my implementation is def names(defaults, pos_names, pos_args, kwds): for dct in pos_names, pos_args, kwds: defaults.update(dct) return defaults The other obvious use for this (as several have posted) is accumulating a sequence. In which case most uses will be well-handled with a genexp, or if you need a concrete sequence, a listcomp, and the body becomes a one (logical) liner (although it will very likely be formatted in multiple lines).