У меня есть список строк, подобных этому списку:
tags = ('apples', 'apricots', 'oranges', 'pears', 'peaches')
Как я должен пойти о группировке этого списка первым символом в каждой строке с помощью itertools.groupby ()? Как я должен предоставить 'ключевой' аргумент, требуемый itertools.groupby ()?
Вы можете впоследствии создать dict
:
from itertools import groupby
d = {k: list(v) for k, v in groupby(tags, key=lambda x: x[0])}
>>> for i, j in itertools.groupby(tags, key=lambda x: x[0]):
print(i, list(j))
a ['apples', 'apricots']
o ['oranges']
p ['pears', 'peaches']
{{1} } просто другой способ,
>>> from collections import defaultdict
>>> t=defaultdict(list)
>>> for items in tags:
... t[items[0]].append(items)
...
>>> t
defaultdict(<type 'list'>, {'a': ['apples', 'apricots'], 'p': ['pears', 'peaches'], 'o': ['oranges']})