
On Fri, Dec 30, 2011 at 9:12 AM, Eric Snow <ericsnowcurrently@gmail.com>wrote:
On Fri, Dec 30, 2011 at 10:02 AM, Guido van Rossum <guido@python.org> wrote:
What I meant is similar to set union on the keys, where if a key exists in both dicts, the value in the result is equal to one of the values in the operands (and if the value is the same for both operands, that value is also the result value).
+1
This is the one I was thinking of too.
-eric
My first thought on reading Julien's message was that {1:2} + {1:3} => {1:5} would be useful when doing reduction, There already is an operation that combines two dictionaries and does not combine values: update. Guido's version of + is a shorthand for: def __add__(self, other): result = self.copy() return result.update(other) Is saving one line of code be enough of a benefit? I think dicts are complex enough that if new functionality is added, it would be better to use named methods which can have meaningful names and are easier look up in the documentation. Furthermore, methods are more flexible as this example shows: def merge(self, other, merger=lambda x, y: x + y): """Merges another dictionary into this one, combining values.""" for k in other: if k in self: self[k] = merger(self[k], other[k]) else: self[k] = other[k] --- Bruce Follow me: http://www.twitter.com/Vroo http://www.vroospeak.com