Most classes in Python should have been functions. The test is not “is this a noun” — it is whether there is invalid state a class can prevent.
What the f actually compiles to, the whole format spec language, __format__, and the three jobs an f-string is the wrong tool for. Every output run on Python 3.12.
Three tools from the collections module that replace loops you have written by hand many times, and the one defaultdict behaviour that surprises people.
One decorator writes __init__, __repr__ and __eq__ for you. Defaults, frozen instances, ordering, post-init and the default_factory rule.
What with guarantees, how to write __enter__ and __exit__, the contextlib shortcut, and how to swallow an exception on purpose.
One asks whether two names point at the same object, the other asks whether the values match. Plus why small numbers seem to break the rule.
Assignment does not copy. A shallow copy copies one level. Here is exactly where the line falls and what copy.deepcopy does about it.
Number formats, alignment, the equals sign debug trick, dates and literal braces. The formatting cheatsheet with real output.
The syntax, filtering, nesting, dict and set versions, and when a generator expression is the better choice.
A decorator is a function that takes a function and returns a new one. Build one from scratch, then see why functools.wraps matters.