Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpClDi 102 of 174 menu
◀ ▶

Удаление элемента коллекции в ООП в Python

Команда del с индексом в скобках вызывает метод __delitem__. Внутри метода элемент убирают из внутреннего списка.

Давайте добавим __delitem__ к классу с числами:

class Numbers: def __init__(self): self.__data = [1, 2, 3] def __len__(self): return len(self.__data) def __delitem__(self, index): del self.__data[index]

Создадим объект, удалим элемент и проверим длину:

nums = Numbers() del nums[0] print(len(nums)) # выведет 2

После удаления индексы сдвигаются, как у обычного списка:

print(nums[0]) # выведет 2

Сделаем удаление для коллекции сотрудников:

class Employee: def __init__(self, name): self.name = name class Workers: def __init__(self): self.__data = [ Employee('john'), Employee('smit'), Employee('eric'), ] def __len__(self): return len(self.__data) def __delitem__(self, index): del self.__data[index]

Удалим среднего сотрудника и выведем имя первого:

workers = Workers() del workers[1] print(workers[0].name) # выведет 'john' print(len(workers)) # выведет 2

Добавьте __delitem__ в класс Numbers.

Сделайте __delitem__ в классе Workers.

Удалите первого сотрудника из объекта Workers и выведите оставшуюся длину коллекции.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить