Reuven Lerner - How to sort anything
Channel: EuroPython Conference
Date: 2020-09-28

How to sort anything
EuroPython 2020 - Talk - 2020-07-24 - Microsoft
Online

By Reuven Lerner

Sorting is one of those things that we take for granted in Python. The built-in "sorted" function knows how to sort any iterable of objects that are themselves sortable.

But hiding behind that simple description is a great deal of depth. In this talk, I'll go deep into what it means to sort, and how we can sort any collection of Python data.  We'll see how you can use custom functions to sort built-in data structures in new and interesting ways.  And we'll see how you can design your own custom classes such that they will sort in just the way you want.

After watching this talk, you'll have a better understanding of sorting, built-in data structures, function objects, and how "magic methods" affect the our Python classes.  Moreover, you'll be able to write clearer, shorter, and more easily understood code.

Topics I'll address in this talk:


"sorted" and Timsort
Sorting a list of simple structures
Reversing the direction with "reverse"
Custom sorting with "key"
Stable sort
Sorting a list of dicts
Using "lambda"
Using operator.itemgetter
Sorting a list of named tuples
Sorting a list of objects
Making your object sortable
The functools.total_ordering decorator


This is an intermediate-level talk; I'll assume that anyone attending knows how to write functions, classes, and methods.



License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/
Please see our speaker release agreement for details: https://ep2020.europython.eu/events/speaker-release-agreement/