数学的演算 パート2
CoddyのPythonジャーニー「ロジックとフロー」セクションの一部。レッスン 34/78。
引き続き、集合に対する数学的演算を見ていきましょう。複数の集合の共通部分や差集合など、より高度な概念に焦点を当てます。
複数の集合の共通部分(& または intersection()):& 演算子または intersection() メソッドを繰り返し使用するか、複数の集合を intersection() メソッドに渡すことで、複数の集合に共通する要素を見つけられます。
set1 = {1, 2, 3}
set2 = {2, 3, 4}
set3 = {3, 4, 5}
intersection_result = set1 & set2 & set3
# または
intersection_result = set1.intersection(set2, set3)
print(intersection_result)
# 出力: {3}複数の集合間の差(- または difference()):- 演算子または difference() メソッドを使うと、最初の集合と複数の他の集合を比較して、最初の集合にのみ含まれる要素を見つけられます。これは、最初の集合から複数の集合を差し引くことで行います。
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6}
set3 = {5, 6, 7}
difference_result = set1 - set2 - set3
# または
difference_result = set1.difference(set2, set3)
print(difference_result)
# 出力: {1, 2, 3}これらの例では、まず3つの集合の共通部分を求め、3つすべての集合に共通する要素だけを含む集合を得ます。次に、複数の集合の差を求め、set2とset3の要素を取り除いた後にset1だけに含まれる要素だけを含む集合を得ます。
チャレンジ
簡単メンバーが興味に応じて異なるグループに分かれている会員制クラブを運営していると想像してください。次のことを知りたいとします。
- すべてのグループで共通の興味を持つメンバーは誰ですか?
- 最初のグループにのみ属し、ほかのグループには属さない、本当に独自のメンバーは誰ですか?
次のプログラムを書いてください。
- 3つの興味グループのメンバーを表す3つの集合、
group1、group2、group3を受け取ります。 - 3つすべてのグループの共通部分(すべてのグループに共通するメンバー)を求め、
intersection_resultに格納します。 - ほかの2つのグループに対する
group1の差集合(最初のグループにのみ属するメンバー)を求め、difference_resultに格納します。
コードの下の行で、両方の結果を出力します。
自分で試してみよう
# 以下にコードを書いてください
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ