Home > Backend Development > Python Tutorial > How to Sort Lists by Multiple Attributes in Python?

How to Sort Lists by Multiple Attributes in Python?

Mary-Kate Olsen
Release: 2025-01-02 22:02:39
Original
925 people have browsed it

How to Sort Lists by Multiple Attributes in Python?

Sorting Lists by Multiple Attributes: A Comprehensive Guide

Sorting data is a fundamental aspect of many programming tasks. When dealing with complex data structures, it often becomes necessary to sort based on multiple attributes. This article addresses the question of sorting a list of lists based on multiple criteria.

The provided code snippet shows a list of lists, where each inner list represents an object with various attributes. The goal is to sort this list by two attributes: the "tall" or "short" attribute and the color attribute.

Using Itemgetter for Multiple-Criteria Sorting

Itemgetter is a useful function for indexing multiple attributes in a tuple. It takes multiple indices as arguments and returns a function that extracts those attributes from a given tuple. Using itemgetter, you can create a key function that considers both the "tall/short" and the color attribute for sorting:

import operator

s = sorted(s, key = operator.itemgetter(1, 2))
Copy after login

Using Lambda Functions for Key Attribute Selection

Another way to specify a key function for sorting is to use lambda functions. Lambda functions are anonymous functions that can be defined inline. The following lambda function returns a tuple of the "tall/short" and color attributes:

s = sorted(s, key = lambda x: (x[1], x[2]))
Copy after login

Using either of these methods, you can sort the list based on multiple criteria. The result will be a list of lists sorted according to the specified attributes.

Direct Sorting

In the given code snippet, sorted is used to return a new sorted list. However, you can also directly sort the list itself using the sort method. This will modify the original list in place:

s.sort(key = operator.itemgetter(1, 2))
Copy after login

Conclusion

By utilizing itemgetter or lambda functions, you can define key functions to sort lists by multiple attributes. This technique is particularly useful when dealing with complex data structures and can simplify the sorting process.

The above is the detailed content of How to Sort Lists by Multiple Attributes in Python?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template