August 2018
Intermediate to advanced
366 pages
10h 14m
English
The itertools module is again a very powerful tool that provides us with the foundations we need to handle iterables:
import itertools
def group_by_key(iterable, key):
iterable = sorted(iterable, key=key)
return {k: list(g) for k,g in itertools.groupby(iterable, key)}
Given our list of names, we can apply a key function that grabs the first character of the name so that all entries will be grouped by it:
>>> group_by_key(names, lambda v: v[0][0])
{'A': [('Alex', 'Zanardi'), ('Anakin', 'Skywalker')],
'J': [('Julius', 'Caesar'), ('Joseph', 'Joestar')]}