Andrew Koenig
So the behavior of
foo = d.setdefault(r,'') foo += "test %d\n" % t
depends on what type foo has, and the OP didn't say.
I assumed that the code snippet was from his actual application, in which case he *did* want it to work on strings, in which case, even if he had the feature he wanted, it wouldn't have helped him. I think the fact that this would only work when the value was mutable is a good reason to disallow it. Too big a source of surprises, otherwise. Being forced to find another way to update the value in this case is a feature, because the absence of such a way when the value is immutable makes it clear that there's no way to do what you're trying to do! Greg Ewing, Computer Science Dept, +--------------------------------------+ University of Canterbury, | A citizen of NewZealandCorp, a | Christchurch, New Zealand | wholly-owned subsidiary of USA Inc. | greg@cosc.canterbury.ac.nz +--------------------------------------+