On 28/06/18 16:25, Nicolas Rolin wrote:
Hi,
I use list and dict comprehension a lot, and a problem I often have is to
do the equivalent of a group_by operation (to use sql terminology).
For example if I have a list of tuples (student, school) and I want to have
the list of students by school the only option I'm left with is to write
student_by_school = defaultdict(list)
for student, school in student_school_list:
student_by_school[school].append(student)
What I would expect would be a syntax with comprehension allowing me to
write something along the lines of:
student_by_school = {group_by(school): student for school, student in
student_school_list}
or any other syntax that allows me to regroup items from an iterable.
Sorry, I don't like the extra load on comprehensions here. You are
doing something inherently somewhat complicated and then attempting to
hide the magic. Worse, you are hiding it by pretending to be something
else (an ordinary comprehension), which will break people's intuition
about what is being produced.
--
Rhodri James *-* Kynesim Ltd
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/