Сниппеты под рукой

Группировка по ключу

Без сортировки и без импорта itertools:

from collections import defaultdict
groups = defaultdict(list)
for item in items:
    groups[item.kind].append(item)

Слияние словарей

Начиная с Python 3.9 — оператором |:

defaults = {"page": 1, "size": 20}
params = defaults | query  # query перекрывает defaults

Разбиение списка на батчи

В 3.12+ есть готовый itertools.batched:

from itertools import batched
for chunk in batched(rows, 500):
    bulk_insert(chunk)

Замер времени блока

import time
from contextlib import contextmanager

@contextmanager
def timer(label):
    t = time.perf_counter()
    try:
        yield
    finally:
        print(f"{label}: {time.perf_counter()-t:.3f}s")