Python sort list of tuples using the sort method needed key which sorts lists in place. And also offers a convenient way to sort tuples based on the index of tuple elements.
You can sort the list of tuples by first and second elements by using indexes or values.
tup[0]
to sort on first tuple elementtup[1]
to sort on second and so on.
1. Example sort by the First element value
my_data = [('P', 1), ('M', 3), ('A', 2), ('B', 4)] my_data.sort(key=lambda tup:tup[1]) print(my_data)
Output:
[(‘P’, 1), (‘A’, 2), (‘M’, 3), (‘B’, 4)]
2. Example sort by the Second element value
my_data = [('P', 1), ('M', 3), ('A', 2), ('B', 4)] my_data.sort(key=lambda tup:tup[0]) print(my_data)
Output:
[(‘A’, 2), (‘B’, 4), (‘M’, 3), (‘P’, 1)]
How to sort a list of tuples by the first element alphabetically in python?
You have a list of tuples like this:
[('peter',1), ('mary',5), ('anthony',6), ('brandon',4)]
And wanted to sort this list and get something like:
[('anthony', 6), ('brandon', 4), ('mary', 5), ('peter', 1)]
Answer: You can do it using a sort() or sorted() functions.
my_data = [('peter', 1), ('mary', 5), ('anthony', 6), ('brandon', 4)] sorted_data = sorted(my_data) print(sorted_data)
my_data = [('peter', 1), ('mary', 5), ('anthony', 6), ('brandon', 4)] my_data.sort() print(my_data)
Python sort list of tuples descending
Here is an example of sorting the list of tuples first by descending order and alphabetically in python 3.
lst
is a list of tuples with each tuple holding the value in the format (value, key). And you want to sort it based on the key which is at the index 0 of the tuple. In that case, you should be calling the .sort() with keys as:
from operator import itemgetter lst = [('C', 1), ('A', 5), ('B', 6), ('D', 4)] lst.sort(key=itemgetter(0)) print(lst)
Output: [(‘A’, 5), (‘B’, 6), (‘C’, 1), (‘D’, 4)]
Python sort list of tuples by multiple elements
lst = [(12, 'tall', 'blue', 1), (2, 'short', 'red', 9), (4, 'tall', 'blue', 13)] s = sorted(lst, key=lambda x: (x[2], x[3])) print(s)
Output:
How to sort the list of tuples by the last element in python?
Answer: Specify the key
argument in the sorted
function.
The sorted
function (as well as the list.sort
method) has an optional key
the argument which specifies what to sort the list on.
tuple1 = [(1, 3), (3, 2), (2, 1)] ntuple = sorted(tuple1, key=lambda x: x[-1]) print(ntuple)
Output: [(2, 1), (3, 2), (1, 3)]
Do comment if you have any doubts about this tutorial.
Note:
IDE: PyCharm 2020.1.1 (Community Edition)
macOS 10.15.4
Python 3.7
All Python Examples are in Python 3, so Maybe its different from python 2 or upgraded versions.