2 ms·
A good example scenario for setdefault/defaultdict is grouping a list of tuples : grouped = {} for (key, value) in ungrouped: group = new.setde
by alduin32 5y ago
A good example scenario for setdefault/defaultdict is grouping a list of tuples :
grouped = {}
for (key, value) in ungrouped:
group = new.setdefault(key, [])
group.append(value)
defaultdict(list) would make it even shorter, but setdefault() is more general, as it makes it possible to have a "default" value that depends on the key itself.
defaultdict combined with late-binding closures also allows to define nested dictionaries :
nested_dict = lambda: defaultdict(nested)
nested = nested_dict()
nested[0][1][2] = "value"