TGViewer
Библиотека питониста | Python, Django, Flask Библиотека питониста | Python, Django, Flask @pyproglib · 37.4K subscribers
Post #7822 2.81K
20 функций itertools: отсортированы по тому как часто реально нужны

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 кода.

Согласны?

📍 Навигация: ВакансииЗадачиСобесы

Библиотека питониста

#буст
  • 👍 12
  • ❤ 1
More from @pyproglib
  1. Sep 20, 2026👻 94% токенов уходят не на код Анализ запусков показал: основная часть токенов уходит на…
  2. Sep 19, 2026📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих» Мы написали и собр…
  3. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  4. Sep 15, 2026⏱️ Справочник по Big-O в Python Для тех, кто хочет писать не просто работающий, а эффектив…
  5. Sep 14, 2026🤪 Если бы можно было задать один вопрос про AI в разработке — что бы вы спросили? Как выб…
  6. Sep 13, 2026🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy выра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →