> I've found myself stumped when trying to organize this list of > objects. The objects in question are timesheets which i'd like to > sort by four attributes: > > class TimeSheet: > department = string > engagement = string > date = datetime.date > stare_hour = datetime.time > > My ultimate goal is to have a list of this timesheet objects which are > first sorted by departments, then within each department block of the > list, have it organized by projects. Within each project block i > finally want them sorted chronologically by date and time.
Python "natural" sort for tuples is doing the right thing for you, for example: from operator import attrgetter from random import randint class Point: def __init__(self, x, y): self.x = x self.y = y def __repr__(self): return "(%s, %s)" % (self.x, self.y) points = [Point(randint(1, 10), randint(1, 10)) for i in range(10)] print points points.sort(key=attrgetter("x", "y")) print points Gave me: [(2, 3), (1, 4), (4, 4), (6, 6), (2, 10), (3, 5), (7, 1), (3, 6), (4, 1), (9, 6)] [(1, 4), (2, 3), (2, 10), (3, 5), (3, 6), (4, 1), (4, 4), (6, 6), (7, 1), (9, 6)] Points first sorted by 'x' and then by 'y'. HTH, -- Miki <miki.teb...@gmail.com> http://pythonwise.blogspot.com -- http://mail.python.org/mailman/listinfo/python-list