Курс Python → Создание пользовательской коллекции в Python

Для создания пользовательских коллекций или структур данных в Python можно использовать классы. В данном примере мы рассмотрим класс CustomList, который определяет метод contains(self, item) для проверки наличия элемента item в списке self.items. Этот метод позволяет нам использовать оператор in для объектов типа CustomList, что делает проверку наличия элементов более удобной и интуитивно понятной.

Пример кода:


class CustomList:
    def __init__(self):
        self.items = []

    def contains(self, item):
        return item in self.items

# Использование
custom_list = CustomList()
custom_list.items = [1, 2, 3, 4, 5]

print(2 in custom_list) # True
print(6 in custom_list) # False

Как видно из примера, при вызове оператора in для объекта CustomList будет автоматически вызван метод contains, который вернет True, если элемент найден в списке, и False, если элемент отсутствует. Этот подход позволяет нам легко проверять наличие элементов в нашей пользовательской коллекции.

Переопределение метода contains позволяет нам определить собственную логику проверки наличия элементов в нашем объекте. Например, мы можем добавить дополнительные условия или проверки перед возвратом результата. Это делает нашу структуру данных более гибкой и настраиваемой под конкретные потребности.

Таким образом, использование пользовательских коллекций с переопределенным методом contains может значительно упростить работу с данными в Python, делая код более читаемым и эффективным. Этот лайфхак пригодится при создании собственных структур данных или коллекций, которые требуют проверки наличия элементов.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Фильтрация последовательности
  2. Оператор match в Python
  3. Создание копии списка в Python
  4. Хранение переменных в Python.
  5. Работа с OpenCV
  6. Ветвление выражения в Python
  7. Функция с *args.
  8. Numpy: разбиение массивов
  9. Функция enumerate в Python
  10. Метод rsub для пользовательских чисел
  11. Генерация случайных чисел в Python
  12. Отладка в Python
  13. Транспонирование 2D-массива с помощью zip
  14. Умножение строк и списков
  15. Методы Python для работы с данными
  16. Импорт классов из другого файла
  17. Управление контекстом с помощью декоратора contextmanager
  18. Именованные срезы в Python
  19. Оболочка Python
  20. Работа с контекст-менеджером «with»
  21. Комплексные числа в Python
  22. Округление банкира в Python
  23. Удаление файлов в Python
  24. Переопределение метода __eq__
  25. Порядок и длина множеств в Python
  26. Работа со случайными элементами
  27. Работа со строками в Python.
  28. Метод __imod__ для Python
  29. Многострочные комментарии в Python
  30. Работа с необработанными строками
  31. Списки в Python: основы
  32. Инвертирование словаря
  33. Бесконечные списки в Python
  34. Счетчик ссылок в Python
  35. Функции map() и reduce() в Python
  36. Использование html-скриптов в Jupyter Notebook
  37. Lambda Functions in Python
  38. Переворот строки
  39. Метод __irshift__ для побитового сдвига вправо
  40. Python 3.12: Псевдонимы типов
  41. Создание namedtuple из словаря
  42. Расчет времени выполнения
  43. Тип CodeType в Python.
  44. Манипуляция формой массива в Numpy
  45. Методы shutil для работы с файлами

Marketello читают маркетологи из крутых компаний