Контейнер (container) в Python — это объект, который содержит другие объекты и предоставляет способ доступа к ним. Контейнеры реализуют протоколы итерации и/или проверки членства (membership test), что позволяет удобно работать с группами элементов.
for item in container
).in
(например, if x in container
).Python предоставляет несколько встроенных (built-in) типов контейнеров:
list_ = [1, 2, 3] # Список (list)
tuple_ = (1, 2, 3) # Кортеж (tuple)
str_ = "hello" # Строка (str, тоже контейнер символов)
set_ = {1, 2, 3} # Множество (set)
frozen_set = frozenset({1, 2, 3}) # Неизменяемое множество (frozenset)
dict_ = {"a": 1, "b": 2} # Словарь (dictionary)
Используйте абстрактные классы из модуля collections.abc
:
from collections.abc import Container
is_container = isinstance([1, 2, 3], Container) # Вернет True
list
).range(10)
или генераторные выражения).class MyContainer:
def __init__(self, items):
self.items = items
def __contains__(self, item): # Реализация проверки вхождения
return item in self.items
def __iter__(self): # Реализация итерируемости
return iter(self.items)
# Использование:
container = MyContainer([1, 2, 3])
print(3 in container) # True
for item in container:
print(item)
Контейнер — это абстракция для объектов, содержащих другие объекты. Основные встроенные контейнеры в Python: списки, кортежи, строки, множества и словари. Контейнеры поддерживают операции проверки вхождения (in
) и итерации (for ... in
). Для создания пользовательских контейнеров нужно реализовать методы __contains__
и/или __iter__
.