3list членство в python продиктовано методом __contains__ dunder. Вы можете перезаписать это для пользовательской реализации, если хотите использовать обычный синтаксис «in
»:
class my_list(list):
def __contains__(self, x):
for y in self:
if x is y:
return True
return False
4 in my_list([4, [3,2,1]])
>> True
[3,2,1] in my_list([4, [3,2,1]]) # Because while the lists are "==" equal, they have different pointers.
>>> False
В противном случае, я бы предложил kaya3 ответ об использовании проверки генератора.