Курс 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. Форматирование строк в Python
  2. Лямбда-функции в Python
  3. Атрибуты объекта в Python
  4. Функции any() и all() в Python
  5. Работа с базами данных SQLite
  6. Аннотации типов в Python
  7. Кортеж в Python: создание, доступ, изменение
  8. Печать календаря в Python
  9. Оператор is в Python
  10. Логирование с Logzero
  11. Бесконечные списки в Python
  12. Руководство по библиотеке pydantic
  13. Перевернуть список в Python
  14. Избегайте двойного подчеркивания
  15. Преобразование данных в Python
  16. Копирование объектов в Python
  17. Метод hash в Python
  18. Оператор in в Python
  19. Разделение строки с помощью re.split()
  20. Установка и использование Telegram API в Python
  21. Оптимизация интернирования строк
  22. Подсчет частоты элементов с Counter
  23. Применение команды break
  24. Получение списка файлов в директории с использованием os
  25. Нан-рефлексивность в Python
  26. Настройка логгера Logzero
  27. Декодирование строк в Python
  28. Метод split() для разделения строк
  29. Избегайте использования goto
  30. Работа с timedelta
  31. Операторы Splat и splatty-splat
  32. Класс-оболочка для словарей
  33. Именование столбцов в Python с pandas
  34. Конкатенация строк в Python
  35. Модуль inspect
  36. Ключевое слово global в Python
  37. Оптимизация гиперпараметров в Python
  38. Логические значения в Python
  39. Изменяемые и неизменяемые объекты
  40. Поиск кода
  41. Проверка элементов списка условием
  42. Методы shutil для работы с файлами
  43. TypedDict для kwargs в Python 3.12
  44. Работа с контекст-менеджером «with»
  45. Метод remove() для удаления элемента из списка
  46. Управление контекстом с помощью декоратора contextmanager
  47. Вывод баннеров
  48. Проверка элемента в множестве.

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