poros
10/4/2015 - 3:46 PM

Grouping with dictionaries

Grouping with dictionaries

d = {}
for name in names:
    key = len(name)
    if key not in d:
        d[key] = []
    d[key].append(name)


# slightly better
d = {}
for name in names:
    key = len(name)
    d.setdefault(key, []).append(name)


# way better
from collections import defaultdict
d = defaultdict(list)
for name in names:
    key = len(name)
    d[key].append(name)