On Thu, Jun 28, 2018 at 4:34 PM Chris Barker via Python-ideas < python-ideas@python.org> wrote:
On Thu, Jun 28, 2018 at 4:23 PM, Greg Ewing
wrote: Nicolas Rolin wrote:
student_by_school = {group_by(school): student for school, student in student_school_list}
In the spirit of making the target expression look like a template for the generated elements,
{school: [student...] for school, student in student_school_list}
hmm -- this seems a bit non-general -- would this only work for a list? maybe you would want a set, or???
so could be get a defaultdict comprehension with something like:
{ school: (default_factory=list, student) for school, student in student_school_list }
But I can't think of an reasonable syntax to make that work.
Many languages with a group-by or grouping function choose to return a mapping of sequences, requiring any reduction, aggregation, or transformation of those sequences to be performed after the grouping.