How do I sort a list of objects based on an attribute of the objects?

list, python, reverse, sorting

Solution

To sort the list in place:

orig_list.sort(key=lambda x: x.count, reverse=True)

To return a new list, use `sorted`:

new_list = sorted(orig_list, key=lambda x: x.count, reverse=True)

Explanation:

- `key=lambda x: x.count` sorts by count.

- `reverse=True` sorts in descending order.

More on sorting by keys.

Problem

I have a list of Python objects that I want to sort by a specific attribute of each object: ``` [Tag(name="toe", count=10), Tag(name="leg", count=2), ...] ``` How do I sort the list by `.count` in descending order?

Original source

Related problems