TGViewer
Библиотека питониста | Python, Django, Flask Библиотека питониста | Python, Django, Flask @pyproglib · 37.3K subscribers
Post #7552 3.27K
🐍 Python совет: if при подсчете элементов

Один из самых частых паттернов у новичков — использование условий для проверки наличия ключа в словаре при подсчете. Это работает, но выглядит громоздко и совсем не «по-питонячьи».

❌ Как делать не стоит (многословно):

counts = {}
for item in items:
if item in counts:
counts[item] += 1
else:
counts[item] = 1



✅ Используйте `defaultdict` из модуля `collections`

Это специальный тип словаря, который сам создает дефолтное значение для ключа, если его еще нет в объекте:

from collections import defaultdict

counts = defaultdict(int) # указываем тип int как дефолтный (даст 0)
for item in items:
counts[item] += 1



Когда вы инициализируете defaultdict(int), вы говорите Python: «Если ключа нет, создай его и присвой значение, которое возвращает функция int(), то есть **0**».

Преимущества:
— Никаких проверок if item in counts.
— Логика становится линейной и понятной с первого взгляда.
— Меньше шансов допустить ошибку в условиях или инициализации.

Если вам нужно просто посчитать элементы в итерируемом объекте, в Python есть еще более мощный инструмент — Counter:

from collections import Counter

counts = Counter(items)
print(counts.most_common(3)) # Бонус: сразу получаем топ-3 элемента


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

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

#буст
  • 👍 9
  • ❤ 3
  • 🔥 3
More from @pyproglib
  1. Sep 25, 2026🔥 Курс «ИИ для разработчиков» уже стартовал И мы решили открыть первое занятие всем — мож…
  2. Sep 20, 2026👻 94% токенов уходят не на код Анализ запусков показал: основная часть токенов уходит на…
  3. Sep 19, 2026📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих» Мы написали и собр…
  4. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  5. Sep 15, 2026⏱️ Справочник по Big-O в Python Для тех, кто хочет писать не просто работающий, а эффектив…
  6. Sep 14, 2026🤪 Если бы можно было задать один вопрос про AI в разработке — что бы вы спросили? Как выб…
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 →