HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>В Python для удаления элементов из списка есть метод .pop() и оператор del. Но они изменяют изначальный список, что может привести к ошибкам в коде:</p>
1 <p>В Python для удаления элементов из списка есть метод .pop() и оператор del. Но они изменяют изначальный список, что может привести к ошибкам в коде:</p>
2 <p>В примере выше мы получили ошибку, потому что удаляя элемент мы смещаем указатель дальше по списку, и перепрыгиваем элементы.</p>
2 <p>В примере выше мы получили ошибку, потому что удаляя элемент мы смещаем указатель дальше по списку, и перепрыгиваем элементы.</p>
3 <p>При этом задача удаления возникает регулярно. Причем обычно удаляется не один элемент, а набор элементов по определенным правилам. Например, довольно распространена операция<em>compact</em>- удаление None значений из списка. Как правильно ее реализовать?</p>
3 <p>При этом задача удаления возникает регулярно. Причем обычно удаляется не один элемент, а набор элементов по определенным правилам. Например, довольно распространена операция<em>compact</em>- удаление None значений из списка. Как правильно ее реализовать?</p>
4 <p>В подавляющем большинстве ситуаций изменение списка должно трансформироваться в создание нового списка, в котором отсутствуют удаляемые элементы. Ниже пример реализации функции compact()</p>
4 <p>В подавляющем большинстве ситуаций изменение списка должно трансформироваться в создание нового списка, в котором отсутствуют удаляемые элементы. Ниже пример реализации функции compact()</p>
5 <p>Главное, на что здесь нужно обратить внимание - не изменяется исходный список coll. Вместо этого создается новый список result, который наполняется только подходящими под условие значениями.</p>
5 <p>Главное, на что здесь нужно обратить внимание - не изменяется исходный список coll. Вместо этого создается новый список result, который наполняется только подходящими под условие значениями.</p>
6 <p>Именно так нужно воспринимать фразу "удалить из списка что-то". Код, использующий новый список, меньше подвержен ошибкам, проще в отладке и оставляет больше возможностей для анализа. Вы всегда можете посмотреть исходный список, если что-то пошло не так. Вы всегда можете наблюдать за процессом наполнения результирующего списка, что позволит четко отследить правильность поставленных условий.</p>
6 <p>Именно так нужно воспринимать фразу "удалить из списка что-то". Код, использующий новый список, меньше подвержен ошибкам, проще в отладке и оставляет больше возможностей для анализа. Вы всегда можете посмотреть исходный список, если что-то пошло не так. Вы всегда можете наблюдать за процессом наполнения результирующего списка, что позволит четко отследить правильность поставленных условий.</p>
7 <p>По сути, код выше - пример агрегации. Только в отличие от предыдущих примеров, в которых результатом был примитивный тип, здесь результат - список. Это совершенно нормально. Как вы увидите в дальнейшем, результат может быть и более сложной структурой. Сама операция прореживания (удаления элементов по определенным условиям) списка обычно называется<strong>фильтрацией</strong>.</p>
7 <p>По сути, код выше - пример агрегации. Только в отличие от предыдущих примеров, в которых результатом был примитивный тип, здесь результат - список. Это совершенно нормально. Как вы увидите в дальнейшем, результат может быть и более сложной структурой. Сама операция прореживания (удаления элементов по определенным условиям) списка обычно называется<strong>фильтрацией</strong>.</p>