Steven Bethard <[EMAIL PROTECTED]> wrote: > You don't need to use sorted() -- sort() also takes the key= and > reverse= arguments:: > > >>> lines = [('1995', 'aaa'), ('1997', 'bbb'), ('1995', 'bbb'), > ... ('1997', 'aaa'), ('1995', 'ccc'), ('1996', 'ccc'), > ... ('1996', 'aaa')] > >>> from operator import itemgetter > >>> lines.sort(key=itemgetter(0), reverse=True) > >>> lines > [('1997', 'bbb'), ('1997', 'aaa'), ('1996', 'ccc'), ('1996', 'aaa'), > ('1995', 'aaa'), ('1995', 'bbb'), ('1995', 'ccc')]
I suspect you want another line in there to give the OP what they actually want: sort the list alphabetically first and then reverse sort on the year. The important thing to note is that the reverse flag on the sort method doesn't reverse elements which compare equal. This makes it possible to sort on multiple keys comparatively easily. >>> lines = [('1995', 'aaa'), ('1997', 'bbb'), ('1995', 'bbb'), ('1997', 'aaa'), ('1995', 'ccc'), ('1996', 'ccc'), ('1996', 'aaa')] >>> from operator import itemgetter >>> lines.sort(key=itemgetter(1)) >>> lines.sort(key=itemgetter(0), reverse=True) >>> lines [('1997', 'aaa'), ('1997', 'bbb'), ('1996', 'aaa'), ('1996', 'ccc'), ('1995', 'aaa'), ('1995', 'bbb'), ('1995', 'ccc')] -- http://mail.python.org/mailman/listinfo/python-list