List Sorting Methods
Advanced Sorting Techniques
Sorting with Key Functions
Python provides powerful key-based sorting mechanisms:
## Sorting strings by length
words = ['python', 'java', 'c++', 'javascript']
sorted_words = sorted(words, key=len)
print(sorted_words) ## Output: ['c++', 'java', 'python', 'javascript']
## Sorting complex objects
students = [
{'name': 'Alice', 'grade': 85},
{'name': 'Bob', 'grade': 92},
{'name': 'Charlie', 'grade': 78}
]
sorted_students = sorted(students, key=lambda x: x['grade'])
Sorting Methods Comparison
| Method |
In-place |
Returns New List |
Modifies Original |
sort() |
Yes |
No |
Yes |
sorted() |
No |
Yes |
No |
Custom Sorting Strategies
Sorting with Multiple Criteria
## Sorting by multiple attributes
data = [
(5, 'apple'),
(2, 'banana'),
(5, 'cherry'),
(2, 'date')
]
sorted_data = sorted(data)
print(sorted_data)
## Output: [(2, 'banana'), (2, 'date'), (5, 'apple'), (5, 'cherry')]
Sorting Flow
graph TD
A[Input List] --> B{Sorting Method}
B --> C[Key Function]
B --> D[Comparison Logic]
C --> E[Transformed Elements]
D --> F[Sorted Result]
Reverse and Complex Sorting
## Reverse sorting with key
numbers = [1, -4, 3, -2, 5]
sorted_abs = sorted(numbers, key=abs, reverse=True)
print(sorted_abs) ## Output: [5, -4, 3, -2, 1]
- Use
key parameter for complex sorting
- Avoid expensive key functions
- Consider list size and complexity
At LabEx, we recommend mastering these advanced sorting techniques to enhance your Python programming skills.