#python #python-3.x #set
#python #python-3.x #набор
Вопрос:
Существует ли в Python набор, который эффективно функционирует как набор, содержащий все возможные наборы?
Комментарии:
1. Я сомневаюсь в этом, это даже не имеет математического смысла. Для чего бы вы его использовали?
2. Почему вы хотите сделать это вместо того, чтобы просто вернуться
True
?3. вместо
if element in set
вы можете сделатьif True
4. Если это
if
, и вы всегда хотите, чтобы оно выполнялось, оно даже не должно быть вif
в первую очередь. Вероятно, это проблема XY . Чего вы на самом деле хотите достичь?5. Для чего-то вроде тестового примера вы могли бы создать свой собственный макет,
set
который делает это, или что угодно еще, что вы хотите.
Ответ №1:
Вы могли бы создать подкласс set
:
class FullSet(set):
def __contains__(self, item):
return True
fullset = FullSet()
print({1, 2, 3} in fullset)
вывод:
True
Комментарии:
1. Чтобы сделать его полным, вероятно, следует также переопределить
__and__
,__or__
union
difference
,intersection
, и т.д… На самом деле почти все. Но опять же, вероятно, нет реальной пользы для полной реализации этого.2. @zvone Да, но все это зависит от варианта использования. В вопросе упоминается только
in
оператор, поэтому я решил рассмотреть именно это.