Defaultdict is a subclass of the dict class. When it encounters a new item, it uses what is provided in its constructor to make a default.
l = defaultdict(list) # use list factory function on default
s = defaultdict(set) # use empty set on default
i = defaultdict(int) # use default int (0) for default.s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = defaultdict(list)
for k, v in s:
d[k].append(v)
list(d.items()) # [('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]s = 'mississippi'
d = defaultdict(int)
for k in s:
d[k] += 1
list(d.items()) # [('i', 4), ('p', 2), ('s', 4), ('m', 1)]