5 ms·
I always love learning little tidbits about Python like these. Thanks! Another I found quite useful: instead of collections.defaultdict, you can use the dict's
by balbeit 15y ago
I always love learning little tidbits about Python like these. Thanks!
Another I found quite useful: instead of collections.defaultdict, you can use the dict's get() method to set a default value if the key doesn't exist. get() takes the key and a default value, and if the key doesn't exist it creates one with the default value provided.
a = {}
a['foo'] = a.get('foo',0) + 1
# a = {'foo':1}
a['foo'] = a.get('foo',0) + 1
# a = {'foo':2}
It can be very useful for incrementing keys in a dict, even if they did not exist previously.
- BrandonM 15y agoget() doesn't create a value in the dictionary, though; it only returns a default value. For what you describe, you would want setdefault(). It works here because you're assigning a value to a['foo'] after get()ing the default value.
- randlet 15y agoYou can use the Counter class from the collections module[1] for that as well. >>> from collections import Counter >>> c = Counter() >>> c['foo'] 0 >>> c['bar'] +=1 >>> c['bar'] 1 >>> [1] http://docs.python.org/dev/library/collections.html#collections.Counter http://docs.python.org/dev/library/collections.html#collecti...
- deleted 15y ago[deleted]