TGViewer
Python/ django Python/ django @pythonl · 58.7K subscribers
Post #5386 7.33K
Python-баг, который выглядит безобидно… но ломает логику 👇


fruits = ["apple", "lime", "orange",
"pineapple", "orange"]

for f in fruits:
if f == "orange":
fruits.remove(f)

print(fruits)


Ожидание: оба orange удалятся.

Реальность: один orange остаётся.

Почему так происходит?

Ты изменяешь список во время итерации.
После удаления элементы сдвигаются, и цикл пропускает следующий элемент.

Это классический сценарий продакшн-багов:

• код выглядит правильно
• тесты могут пройти
• но данные обрабатываются неправильно

Правильный вариант:

fruits = [f for f in fruits if f != "orange"]


Мораль:
Изменяешь коллекцию во время обхода -Deploy first. Pray later.

#junior #python

@pythonl
  • ❤ 22
  • 👍 9
  • 😁 4
  • 🔥 2
  • 😱 1
More from @pythonl
  1. Sep 27, 2026🐍 В Python 3.15 решили мягко «похоронить» re.match() re.match() никуда не удаляют, но для…
  2. Sep 26, 2026⚡️ Qwen-Image за 6 шагов: Viggle ускорили генерацию и редактирование в 5 раз Viggle выложи…
  3. Sep 25, 2026🖥 Заголовки безопасности для FastAPI - одной строкой 🛡️ fastapi-security-headers добавля…
  4. Sep 24, 2026Линтер для инструкций ИИ-агентов LintLang проверяет AGENTS.md, CLAUDE.md, SKILL.md, описан…
  5. Sep 24, 2026‼️Ваши данные уже слиты. Вопрос лишь в том, кто и как ими воспользуется. Только в 2025 год…
  6. Sep 24, 2026⚡️ OmniVoice - открытая модель озвучки с поддержкой более 600 языков. Она умеет клонироват…
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 →