Sorting with Keys & heapq
Python · Intermediate
Definition
sorted() and list.sort() accept key functions; heapq provides a priority queue.
Custom ordering is needed in many interview problems.
Diagram
Flowchart
Example: Multi-key sort
people = [('ria', 90), ('amit', 95), ('dev', 90)]
print(sorted(people, key=lambda p: (-p[1], p[0])))Output: [('amit', 95), ('dev', 90), ('ria', 90)]
Complexity
O(n log n), stable
Key points
- Python sort is Timsort and stable
- Negate numbers to reverse one field
Interview questions
Is Python's sort stable?
Yes — equal keys keep their original order.