Курс 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. Big O оптимизация
  2. Проверка типов с использованием isinstance
  3. Работа с файлами в Python
  4. Декораторы в Python
  5. Функция zip() в Python
  6. Метод rename() для переименования файлов и каталогов
  7. Генерация UUID в Python
  8. Python: Splat-оператор и splatty-splat
  9. Взаимодействие с внешними процессами в Python
  10. Метод __iand__ для пользовательских классов
  11. Модуль math: основные функции
  12. Использование функции product
  13. Цепные операции в Python
  14. Отладка производительности Python
  15. Поиск файлов по шаблону
  16. Поиск наиболее частого элемента списке
  17. Регистрация на TenChat
  18. Подсчет элементов с помощью Counter из collections
  19. IPython и Jupyter Notebook: руководство
  20. Преобразование кортежа в словарь.
  21. Использование super() в Python
  22. Pretty-printing JSON в Python
  23. Оператор == в Python
  24. Бинарный поиск
  25. Форматирование строк в Python
  26. Модуль pprint
  27. Инверсия списка и строки
  28. Утечки переменных цикла в Python 3.x
  29. Декоратор Ajax required
  30. Фильтрация списка чисел
  31. Уникальность ключей в словаре
  32. Генераторы в Python
  33. Добавление цвета в консоли
  34. Вычисление разности множеств в Python
  35. Удаление ключей из словаря
  36. Измерение времени выполнения кода с использованием time
  37. Python и Монти Пайтон
  38. Делегирование в Python
  39. Обработка элементов в Python
  40. Enum в Python
  41. Округление дробей в Python
  42. Взаимодействие с sys
  43. Реверс строки в Python
  44. Метод join() для объединения строк
  45. Работа с кортежами в Python
  46. Списковое включение в Python
  47. f-строки в формате строк

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