TGViewer
Яндекс Практикум. Программирование и анализ данных Яндекс Практикум. Программирование и анализ данных @practicumtech · 11.2K subscribers
Post #523 4.79K
Решение задачи из предыдущего поста👆

Подобные задачи часто спрашивают на собеседовании на позицию джуна.

Ошибка в этом коде заключается в модификации списка nums во время итерации по нему. Когда вы удаляете элемент из списка во время итерации, это изменяет индексы последующих элементов, что может привести к пропуску некоторых элементов или другим неожиданным результатам.

В данном конкретном случае, когда цикл достигает числа 1, оно удаляется, что сдвигает все остальные элементы на одну позицию назад. Таким образом, цикл пропустит следующий элемент после удаленного (в этом случае, 2), поскольку его индекс теперь равен текущему индексу итератора.

Варианты правильного решения:

1️⃣Использование списочного включения (list comprehension): Это наиболее питонический и предпочтительный способ фильтровать элементы в списке. Он создает новый список, содержащий только те элементы, которые удовлетворяют заданному условию.


nums = [1, 2, 5, 11, 3, 111, 7, 27]
nums = [i for i in nums if i >= 5]
print(nums)



2️⃣Использование `filter`: Это ещё один функциональный подход к решению этой задачи. filter создает итератор, который содержит только элементы, удовлетворяющие условию.


nums = [1, 2, 5, 11, 3, 111, 7, 27]
nums = list(filter(lambda x: x >= 5, nums))
print(nums)



3️⃣Итерация по копии списка: Можно итерироваться по копии списка, удаляя элементы из оригинала. Это предотвращает изменение списка во время итерации.



nums = [1, 2, 5, 11, 3, 111, 7, 27]
for i in nums[:]: # Итерация по копии списка
if i < 5:
nums.remove(i)
print(nums)
  • 👍 19
  • ❤ 8
  • 🔥 5
More from @practicumtech
  1. Oct 12, 2026upd: Практикум работает! Мы знаем, сколько стоит за каждым шагом в обучении: время, усилия…
  2. Oct 7, 2026Как ИИ читает рукописи и синтезирует речь Нейросети читают почерк не хуже человека, а гово…
  3. Oct 5, 2026Чем занимается ИИ-инженер и что изменилось с приходом LLM🔖 Антон Моргунов — инженер по ма…
  4. Sep 30, 2026Напоминаем, на каких курсах с нуля начинается обучение в первой половине октября. Если ище…
  5. Sep 29, 2026Воркшоп «ИИ для программирования» В новом сезоне практических видео эксперты Практикума ра…
  6. Sep 28, 2026СТО Практикума о том, как ИИ меняет обучение и профессию разработчика Делимся разговором с…
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 →