Skip to content

    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

    key=(-score, name)→ highest score, th…

    Flowchart

    Choose sort keyUse tuple for multiple fieldsreverse=True for descendingheapq for repeated min

    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.

    More Python topics