Dan Bishop wrote: > Even assuming you meant (-x[0], int(x[1])), that sorts negative
> numbers in the wrong order. You want > key = lambda x: (-1 if x[0] else 1) * int(x[1]) Sorry, was speed typing (very badly) and the question actually had two different problem descriptions. As you suggest, what I meant was:: key= lambda x: (-x[0], int(x[1])) which was meant to address: "Sorting tuples, where the second item in the tuple should have the opposite ordering to the first is going to be a bit of a pain." But you are quite right, the problem was then specified to numerical order, for which I like your solution. Or even:: key= lambda x: -int(x[1]) if x[0] else int(x[1]) The key point being, if you will, that this use case does not support the idea that relying on ``key`` will be so bad. So, what is a case that is really uncomfortable? Thanks, Alan Isaac -- http://mail.python.org/mailman/listinfo/python-list