itertools импортируют все, но используют 3-4 функции.
Вот полный список отсортированный по полезности — не как в документации.
🔥 Используешь постоянно
·
chain(it1, it2) — склеить несколько итерируемых в одну·
chain.from_iterable(nested) — разгладить вложенный список лениво·
islice(it, start, stop) — срез итератора (без отрицательных индексов)·
compress('ABCDEF', [1,0,1,0,1,1]) — фильтр по булевой маске → A, C, E, F·
filterfalse(pred, it) — противоположность filter(), где предикат False🙂 Используешь периодически
·
starmap(pow, [(2,5),(3,2)]) — применить функцию с распаковкой кортежей·
pairwise([1,2,3]) — скользящие пары: (1,2),(2,3) — Python 3.10+·
batched(range(10), 3) — разбить на чанки фиксированного размера — Python 3.12+·
groupby(items, key=func) — группировка (данные должны быть отсортированы!)·
accumulate(nums, func) — накопительные суммы или любая бинарная функция·
takewhile(pred, it) — брать пока предикат True·
dropwhile(pred, it) — пропускать пока предикат True, потом всё остальное🤔 Знаешь но редко тянешься
·
tee(it, n=2) — разделить один итератор на n независимых·
zip_longest(a, b, fillvalue=None) — zip до самого длинного, заполняя пропуски·
combinations(items, r) — все комбинации без повторений·
combinations_with_replacement('AB', 2) — комбинации с повторениями: AA, AB, BB·
permutations(items, r) — все перестановки, порядок важен😴 Скорее забыл что существует
·
product(a, b) — декартово произведение = вложенные for-циклы·
count(start, step) — бесконечный счётчик, удобно с zip()·
cycle([1,2,3]) — бесконечно повторять итерируемое (хранит копию!)·
repeat(10, times=3) — повторить объект n разpairwise и batched — две которые большинство не знает, хотя именно они убирают кучу boilerplate кода.Согласны?
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст