> class Player(object): > def __init__(self, **kw): self.__dict__.update(kw) > def __repr__(self): return '<Player %s>'%getattr(self, 'name', > '(anonymous)') > > import operator > [p.name for p in sorted(players, key=operator.attrgetter('attacking'), > reverse=True)]
Just happened to read this thread and wanted to say this is a neat little example-- thank you! I have a couple of followup questions. (1) Is there a performance penalty for using key=operator.attrgetter()? (2) The Player class looks like a nice model for a data table when one wants to sort by arbitrary column. Would you agree? (3) Suppose one wished to construct a player list from a collection of attribute lists, e.g., names = ['bob', 'sam', 'linda'] attack = [7, 5, 8] defense = [6, 8, 6] # construct players list here Can you recommend an efficient way to construct the player list? Thanks! Marcus -- http://mail.python.org/mailman/listinfo/python-list