How to sort a list/tuple of lists/tuples by the element at a given index?
You can use the sorted()
function with the key
parameter to specify a function that extracts the element at the desired index.
Here's an example of sorting a list of tuples by the second element of each tuple:
my_list = [(1, 3), (4, 2), (3, 1)]
sorted_list = sorted(my_list, key=lambda x: x[1])
print(sorted_list) # [(3, 1), (4, 2), (1, 3)]
Watch a video course
Python - The Practical Guide
You can also use the itemgetter()
function from the operator
module as the key for sorting, it will be more efficient than lambda function
from operator import itemgetter
my_list = [(1, 3), (4, 2), (3, 1)]
sorted_list = sorted(my_list, key=itemgetter(1))
print(sorted_list) # [(3, 1), (4, 2), (1, 3)]
Note that the above examples will sort the list in ascending order. To sort in descending order, pass reverse=True
as a parameter to the sorted()
function.