Курс 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. Функции map() и reduce() в Python
  2. Непрерывная проверка в Python
  3. Присвоение и ссылки
  4. Обратный список чисел
  5. Оператор break в Python
  6. Оптимизация параметров в Python
  7. Удаление элемента по индексу
  8. Модуль itertools: эффективная работа с итераторами
  9. Освобождение памяти в Python
  10. Форматирование вывода с F-строками
  11. Работа с deque в Python
  12. Операции с комплексными числами
  13. Работа с NumPy массивами
  14. Метод repr() в Python
  15. Лямбда-функции в Python
  16. Создание словарей с defaultdict()
  17. Изменение регистра данных
  18. Преобразование в float
  19. Поиск шаблона в строке
  20. Управление контекстом выполнения
  21. Оболочка Python
  22. Работа с WindowsPath()
  23. Работа с collections в Python
  24. Работа с множествами в Python
  25. GitHub в Telegram: подписка на уведомления
  26. Возврат нескольких значений из функции
  27. Списки в Python
  28. Импорт объектов из модулей
  29. Метод append() для списка
  30. Форматирование строк с f-строками
  31. Решение переменной Шредингера
  32. Лимиты на ресурсы Python
  33. Названия столбцов в Python таблицах
  34. Оценка точности модели
  35. Преобразование данных в Python
  36. Форматирование строк в Python
  37. Обмен данными с asyncio.Queue
  38. Метод pop() списка
  39. Открытие и редактирование скриптов Python
  40. Транспонирование матрицы
  41. Создание словаря и множества
  42. PrettyTable: создание таблицы
  43. Объединение списков с помощью zip
  44. Динамическая типизация в Python
  45. Объединение объектов в Python
  46. Форматирование строк в Python

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