「Pythonの基礎 - 集合の作成と操作」の版間の差分

ナビゲーションに移動 検索に移動
256行目: 256行目:
  {1, 4}
  {1, 4}
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
== 集合と他の集合との関係 ==
集合と集合が等しいかどうか、また、集合が他の集合の部分集合かどうか等、集合と他の集合との関係を確認する方法について記載する。<br>
<br>
==== 集合が他の集合と等しいかどうか ====
比較演算子の<code>==</code>または<code>!==</code>で比較することができる。<br>
<br>
集合Aの要素が集合Bに全て含まれており、集合Bの要素が集合Aに全て含まれている場合、Trueとなる。<br>
<syntaxhighlight lang="python">
set1 = {"A", "B", "C"}
set2 = {"B", "C", "A"}
print(set1 == set2)
# 出力
True
</syntaxhighlight>
<br>
==== 部分集合 ====
比較演算子の<code><=</code>および<code>issubset</code>関数で比較することができる。<br>
<br>
集合Aの要素が全て集合Bに含まれている場合、集合Aは集合Bの部分集合であるという。<br>
<br>
以下の例では、集合set1は集合set2の部分集合であるが、集合set2は集合set1の部分集合ではない。<br>
集合set1と集合set3が等しい場合いおいても、集合set1は集合set3の部分集合となる。<br>
<syntaxhighlight lang="python">
set1 = {"A", "B"}
set2 = {"B", "D", "C", "A"}
set3 = {"B", "A"}
print(set1 <= set2)
print(set2 <= set1)
print(set1 <= set3)
print(set1.issubset(set2))  # 集合set1が集合set2の部分集合の場合、Trueとなる
# 出力
True
False
True
True
</syntaxhighlight>
<br>
==== 真部分集合 ====
比較演算子の<code><</code>で比較することができる。<br>
<br>
集合Aの要素が全て集合Bに含まれており、かつ、集合Aと集合Bが等しくない場合、集合Aは集合Bの真部分集合であるという。<br>
<br>
以下の例では、集合set1は集合set2の真部分集合であり、集合set1と集合set3は真部分集合ではない。<br>
<syntaxhighlight lang="python">
set1 = {"A", "B"}
set2 = {"B", "D", "C", "A"}
set3 = {"A", "B"}
print(set1 < set2)
print(set2 < set1)
print(set1 < set3)
# 出力
True
False
False
</syntaxhighlight>
<br>
==== 超集合 ====
比較演算子の<code>>=</code>および<code>issuperset</code>関数で比較することができる。<br>
<br>
集合Bの要素が全て集合Aに含まれている場合、集合Aは集合Bの超集合であるという。<br>
<br>
以下の例では、集合set1は集合set2の超集合ではないが、集合set2は集合set1の超集合である。<br>
集合set1と集合set3が等しい場合も、集合set1は集合set3の超集合となる。<br>
<syntaxhighlight lang="python">
set1 = {"A", "B"}
set2 = {"B", "D", "C", "A"}
set3 = {"B", "A"}
print(set1 >= set2)
print(set2 >= set1)
print(set1 >= set3)
print(set3 >= set1)
print(set2.issuperset(set1))
# 出力
False
True
True
True
True
</syntaxhighlight>
<br>
==== 真超集合 ====
比較演算子の<code>></code>で比較することができる。<br>
<br>
集合Bの要素が全て集合Aに含まれており、かつ、集合Aと集合Bが等しくない場合、集合Aは集合Bの真超集合であるという。<br>
<br>
以下の例では、集合set1は集合set2の真超集合ではないが、集合set2は集合set1の真超集合である。<br>
また、集合set1と集合set3が等しい場合も真超集合ではない。<br>
<syntaxhighlight lang="python">
set1 = {"A", "B"}
set2 = {"B", "D", "C", "A"}
set3 = {"A", "B"}
print(set1 > set2)
print(set2 > set1)
print(set1 > set3)
# 出力
False
True
False
</syntaxhighlight>
<br>
==== 互いに素 ====
set型およびfrozenset型にある<code>isdisjoint</code>関数で比較することができる。<br>
<br>
集合Aと集合Bが同じ要素を1つも持たない時、集合Aは集合Bと互いに素であるという。<br>
<br>
以下の例では、集合set1は集合set2は共通の要素がないので互いに素であるが、<br>
集合set1と集合set3、および、集合set2と集合set3は共通する要素があるため互いに素ではない。<br>
<syntaxhighlight lang="python">
set1 = {"A", "B"}
set2 = {"C", "D", "E"}
set3 = {"A", "C"}
print(set1.isdisjoint(set2))
print(set1.isdisjoint(set3))
print(set2.isdisjoint(set3))
# 出力
True
False
False
</syntaxhighlight>
<br><br>
== 集合に指定した値と同じ要素が含まれているか確認する ==
集合に対して、指定した値と同じ要素が含まれているかどうか確認する方法について記載する。<br>
<br>
要素が含まれているかどうかを確認するには、<code>in</code>演算子を使用する。<br>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:Python]]
[[カテゴリ:Python]]

案内メニュー