В Python для большинства встроенных типов данных определён оператор in, который является аналогом проверки принадлежности элемента к коллекции.
Вот пример его использования на строке, списке, итераторе, множестве, словаре и кортеже (обратите внимание, что поиск по словарю осуществляется только по ключам. Это следует из структуры хранения словаря).
>>> 'a' in 'abc'
True
>>> 'd' in 'abc'
False
>>> 7 in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
True
>>> 7 in range(10, 100)
False
>>> myset = {1, 2, 3, 4, 5}
>>> 3 in myset
True
>>> 10 in myset
False
>>> mydict = {'1': 4, '2': 5, '3': 6}
>>> '1' in mydict
True
>>> 4 in mydict
False
>>> 4 in ('a', True, None)
False
Обратите внимание, что есть оператор not in, и PEP8 устанавливает правило использовать именно конструкцию A not in B, а не not A in B. И не путайте этот бинарный оператор, возвращающий значение типа Bool, с конструкцией for A in B.
Ниже продвинутая информация!
На пользовательских классах определение оператора in производится с помощью магического метода __contains:__
class A:
def __contains__(self, elem):
return True # Заглушка
>>> MyA = A()
>>> '5' in MyA
True
Выражение X in Y заменяется на конструкцию Y.contains(X).