Home > front end >  How to use multiple keys when sorting?
How to use multiple keys when sorting?

Time:12-14

There's this list that I want to sort:

table = [("A", 5, 3), ("B", 5, 6), ("C", 3, 1)]

Inside each tuple, let's call the elements name, points, ex, in that order.

I want to sort that list by descending order of points, that's simple enough.

But if points are the same for 2 tuples, I'll sort those by ascending order of ex.

How can I go about doing this?

CodePudding user response:

You can use the "sorted" built-in function with custom ordering function. If you want to make values to be ordered descendently, it's sufficient to use negatives of the same values.

sorted(table, key = lambda x: (-x[1], x[2]))

Output:

[('A', 5, 3), ('B', 5, 6), ('C', 3, 1)]
  • Related