Taking a very simple example of looping over a sentence and creating a dictionary which maps {x:y}
, where x
is a key representing the length of the wor
Sure, you can, using sorted
+ groupby
, but it doesn't look great.
from itertools import groupby
d = dict([(k, list(g)) for k, g in groupby(sorted(mywords.split(), key=len), key=len)])
print(d)
{2: ['be', 'be'],
3: ['May', 'and'],
4: ['your', 'your'],
5: ['short'],
6: ['coffee', 'strong', 'Monday']}
P.S., Here's my answer (using defaultdict
that I recommend over this) to the original question.