Python6 min read

Python Sorting

Sort data efficiently using sort and sorted functions.

Michael Brown
December 18, 2025
0.0k0

Master sorting techniques.

Basic Sorting

```python numbers = [5, 2, 8, 1, 9]

Sort in place numbers.sort() print(numbers) # [1, 2, 5, 8, 9]

Create sorted copy numbers = [5, 2, 8, 1, 9] sorted_nums = sorted(numbers) print(sorted_nums) # [1, 2, 5, 8, 9] print(numbers) # [5, 2, 8, 1, 9] (unchanged) ```

Reverse Order

```python numbers = [5, 2, 8, 1, 9]

numbers.sort(reverse=True) print(numbers) # [9, 8, 5, 2, 1] ```

Custom Sorting

```python # Sort by string length words = ["apple", "hi", "banana", "kiwi"] words.sort(key=len) print(words) # ['hi', 'kiwi', 'apple', 'banana']

Sort by absolute value numbers = [-5, 3, -2, 8, -1] numbers.sort(key=abs) print(numbers) # [-1, -2, 3, -5, 8] ```

Sort Complex Data

```python students = [ {"name": "Tom", "grade": 85}, {"name": "Sarah", "grade": 92}, {"name": "Mike", "grade": 78} ]

Sort by grade students.sort(key=lambda s: s["grade"], reverse=True)

for student in students: print(f"{student['name']}: {student['grade']}") # Sarah: 92 # Tom: 85 # Mike: 78 ```

Multiple Sort Keys

```python data = [ ("Tom", 25, "Austin"), ("Sarah", 25, "Miami"), ("Mike", 30, "Denver") ]

Sort by age, then name data.sort(key=lambda x: (x[1], x[0])) print(data) ```

Operator Module

```python from operator import itemgetter, attrgetter

Sort by index data = [(2, "b"), (1, "a"), (3, "c")] data.sort(key=itemgetter(0)) print(data) # [(1, 'a'), (2, 'b'), (3, 'c')] ```

Remember

- sort() modifies list - sorted() returns new list - Use key for custom sorting

#Python#Intermediate#Sorting