実現したいこと
pythonで、集合と集合を in で比較した場合、Trueの意味とFalseの意味が何かが知りたいです。
前提
部分集合か否かは、演算子(< や <= )を用いて、比較したい集合を並べると思います。
あるものが、ある集合の要素か否かは、演算子(in)を用いて、表現すると思います。
発生している問題・エラーメッセージ
該当のソースコードでは、
集合と集合を<=で比較した場合は、部分集合か否かを判定し、Trueが返ってきたと理解しています。
集合と集合を in で比較した場合、エラーにはならず、Falseが返ってきます。
このFalseは何を判定しているのかがわからないです。
該当のソースコード
Python 3.11.2 (v3.11.2:878ead1ac1, Feb 7 2023, 10:02:41) [Clang 13.0.0 (clang-1300.0.29.30)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
a = {1, 2, 3, 4, 5}
b = {1, 2, 3}
a
{1, 2, 3, 4, 5}
b
{1, 2, 3}
b <= a
True
b in a
False
こうかな。
>>> a = [{1,2,3},{4,5,6}]
>>> {1,2} in a
False
>>> {1,2,3} in a
True

print({1,2} <= {1,2,3}) # True
print({1,2,4} <= {1,2,3}) # False
print({1,2}.issubset({1,2,3})) # True
print({1,2,4}.issubset({1,2,3})) # False
inはcontainsで意味合い的には要素が集合に含まれているかどうかの意味
ありがとうございます。集合が集合の要素になるか試したのですがエラーになり、困っていました。frozensetというのがあること教えていただき、これを使うと、frozensetが、集合の要素かどうかを、containsという意味合いで、inで判定できること理解しました。今後ともよろしくお願いします。

回答1件
あなたの回答
tips
プレビュー