In this tutorial, we will see what are the different ways to sort objects in Python.

Different ways to Sort Objects in Python?

Here I am going to show you three different ways to sort the objects in python, let’s see one by one.

Create a list of item object to sort it.
class Item():
    def __init__(self,id,name,price):

    def __repr__(self):
        return '({},{},${})'.format(,,self.price)

item1 = Item(100,"Mobile",25000)
item2 = Item(200,"Books",17000)
item3 = Item(300,"Pens",12000)
item4 = Item(400,"Laptops",75000)

items = [item1,item2,item3,item4]

1. Sort Objects in Python using a custom function:

Define a custom function to sort python objects by taking the key (key can be anything like id or name or price).

def item_sort(item):
    return item.price
sorted_items = sorted(items,key=item_sort)
sorted_items = sorted(items,key=item_sort,reverse=True) #reverse order

Created a custom sort function and pass this function as a key in sorted function. If you want to sort the reverse order, you can enable the reverse=True attribute to sorted function.


[(300,Pens,12000), (200,Books,17000), (100,Mobile,25000), (400,Laptops,75000)]

2. Sort Objects in Python using a lambda function:

Lambda anonymous functions are very flexible to use, we can implement them very easily and quickly. Here is the simplest way to sort objects using lambda.

#Using lambda
sorted_items = sorted(items,key=lambda

Sorting Items by their names.


[(200,Books,17000), (400,Laptops,75000), (100,Mobile,25000), (300,Pens,12000)]

3. Sort Objects in Python using operator module:

Python operator module’s attrgetter gives us a better way to sort the objects in python.

from operator import attrgetter

sorted_items = sorted(items,key=attrgetter("id"))


[(100,Mobile,25000), (200,Books,17000), (300,Pens,12000), (400,Laptops,75000)]

Recommended: Python list Data structure in depth.

Happy Learning 🙂