[Skip] > eh... I don't like these do two things at once kind of methods. I see > nothing wrong with > > >>> dict = {} > >>> dict['hello'] = dict.get('hello', []) > >>> dict['hello'].append('world') > >>> print dict > {'hello': ['world']} > > or > > >>> d = dict['hello'] = dict.get('hello', []) > >>> d.insert(0, 'cruel') > >>> print dict > {'hello': ['cruel', 'world']} > > for the obsessively efficiency-minded folks. Good! Two lines instead of three, and only two dict lookups in the latter one. > Also, we're talking about a method that would generally only be useful when > dictionaries have values which were mutable objects. Irregardless of how > useful instances and lists are, I still find that my predominant day-to-day > use of dictionaries is with strings as keys and values. Perhaps that's just > the nature of my work. Must be. I have used the above two idioms many times -- a dict of lists is pretty common. I believe that the fact that you don't need it is the reason why you don't like it. I believe that as long as we agree that dict['hello'] += 1 is clearer (less strain on the reader's brain) than dict['hello'] = dict['hello'] + 1 we might as well look for a clearer way to spell the above idiom. My current proposal (violating my own embargo against posting proposed names to the list :-) would be dict.default('hello', []).append('hello') --Guido van Rossum (home page: http://www.pythonlabs.com/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4