[Python-Dev] "groupby" iterator

Oren Tirosh oren-py-d at hishome.net
Sun Nov 30 02:31:09 EST 2003


On Fri, Nov 28, 2003 at 06:24:30PM -0500, Raymond Hettinger wrote:
...
> students.sort(key=extract('grade'))  # key=lambda r:r.grade
> students.sort(key=extract(2))        # key=lambda r:[2]

Why should the extract function interpret a string argument as getattr
and an int argument as getitem? 

I find the explicit version more readable:

students.sort(key=attrgetter('grade'))  # key=lambda r:r.grade
students.sort(key=itemgetter(2))        # key=lambda r:[2]
students.sort(key=itemgetter('grade'))  # key=lambda r:r['grade']

    Oren



More information about the Python-Dev mailing list