Reuven Lerner - How to sort anything

Learn how to master sorting in Python with Reuven Lerner, including custom key functions, stable sorting, and implementing total ordering concepts.

Key takeaways
  • Sorting is important and is done frequently in programming
  • Use sorted() function with a custom key function to sort lists
  • A key function can be a lambda function or a regular function
  • Key functions can sort lists of strings, numbers, and objects
  • sorted() method modifies the original list if the key function returns a mutable object
  • To avoid modifying the original list, use sorted() function with a key function that returns an immutable object
  • The default sort order is ascending, but descending order can be achieved by multiplying the key function’s return value by -1
  • The operator.itemgetter function can be used to create a key function that sorts lists of objects
  • Data classes and the @dataclass decorator can be used to create classes with immutable objects
  • The @dataclass decorator automatically generates methods for sorting and comparing objects
  • Total ordering can be achieved by implementing __lt__, __eq__, and __gt__ methods in a class
  • Python’s sorted() function is stable, meaning that it maintains the relative order of equal elements
  • The sorted() function is customizable and can be used with lists, tuples, dictionaries, and other iterable objects
  • Tim Sort, a stable sorting algorithm, is the default sorting algorithm used in Python
  • Tim Sort is fast and efficient, and is suitable for sorting large lists of objects