braver wrote: > Also, what's the shortest python idiom for get_or_set in expression?
dict.setdefault, as I already explained to you. Again, I'd like to point out that what you're doing is *not* the correct Pythonic way of doing things. In Python, there is simply no implicit sub-dicts creation, nor implicit type inference from operators. And there are very good reason for that. Python is a strongly typed languages: objects have a type and keep it, they don't change it when used with different operators. setdefault() is you get'n'set, everything else has to be made explicit for a good reason. Strong typing has its virtues, let me give you a link about this: http://wingware.com/python/success/astra See specifically the paragraph "Python's Error Handling Improves Robustness" I believe you're attacking the problem from a very bad point of view. Instead of trying to write a Python data structure which behaves like Perl's, convert a Perl code snippet into Python, using the *Pythonic* way of doing it, and then compare things. Don't try to write Perl in Python, just write Python and then compare the differences. -- Giovanni Bajo -- http://mail.python.org/mailman/listinfo/python-list