用語比較
集合の | & - ^ の違い|和・積・差・対称差をPython3エンジニア認定基礎試験で判断する
集合(set)の演算子は、| が和、& が積、- が差、^ が対称差を求めます。
a = set('abracadabra')、b = set('alacazam') なら、a - b はaにあってbにない文字、a | b はaまたはbまたは両方にある文字、a & b は両方にある文字、a ^ b はaまたはbにあるが両方にはない文字です。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。
| と &と- と ^の要点
| と &
| は少なくとも一方にある要素を全て集める和、& は両方にある要素だけを残す積。
- と ^
- は左の集合にあって右にない要素を残す差、^ はどちらか一方だけにある要素を残す対称差。
違いを表で確認
| 比較軸 | | と & | - と ^ |
|---|---|---|
| 名称 | | は和 (union)、& は積 (intersection) | - は差 (difference)、^ は対称差 (symmetric difference) |
| 公式チュートリアルの説明 | | は「aまたはbまたは両方に存在する文字」、& は「aとbの両方に存在する文字」 | - は「aにあってbにない文字」、^ は「aまたはbにあるが、両方にはない文字」 |
| aだけにある要素(r, d, b) | | の結果に入る、& の結果に入らない | - の結果に入る、^ の結果に入る |
| bだけにある要素(m, z, l) | | の結果に入る、& の結果に入らない | - の結果に入らない、^ の結果に入る |
| 両方にある要素(a, c) | | の結果に入る、& の結果に入る | - の結果に入らない、^ の結果に入らない |
Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)
PRどこで迷っているかを切り分ける
^ を累乗の記号と混同している初学者
集合どうしの a ^ b は、公式チュートリアルが「aまたはbにあるが、両方にはない文字」と説明する対称差です。aだけにある要素とbだけにある要素を合わせたものになります。
a - b と b - a の結果が同じだと考える人
差は左の集合を基準にします。チュートリアルの例では a - b は {'r', 'd', 'b'} で、aにあってbにない文字です。左右を入れ替えると、bにあってaにない文字になります。
| と ^ の違いを両方の要素の扱いで整理できない再受験者
どちらもaだけの要素とbだけの要素を結果に含めます。違いは両方にある要素で、| は結果に含め、^ は含めません。
問題文から答えを選ぶ手順
- 1
要素を3グループに分ける
aだけにある要素、bだけにある要素、両方にある要素に分けます。
- 2
演算子ごとに残るグループを選ぶ
| は3グループ全て、& は両方にある要素だけ、- は左だけにある要素、^ は左だけと右だけの要素を残します。
- 3
左右の順序を確認する
- は左右を入れ替えると結果が変わります。他の3つは入れ替えても同じ集合になります。
- 4
重複と順序を気にしない
集合は重複する要素をもたず、順序づけられていません。表示される順序は予想と異なることがあります。
試験での見分け方
- 1| は、aまたはbまたは両方に存在する要素を集める和。
- 2& は、aとbの両方に存在する要素だけを残す積。
- 3- は、左の集合にあって右の集合にない要素を残す差。
- 4^ は、aまたはbにあるが両方にはない要素を残す対称差。
誤答しやすい選択肢
対称差と和を同じ結果だと考える
修正: 和は両方にある要素も含み、対称差は両方にある要素を含みません。チュートリアルの例では a | b に a と c が入り、a ^ b には入りません。
差の左右を入れ替えても結果が変わらないと考える
修正: 差は左の集合を基準にするため、a - b と b - a は別の結果になります。
集合の表示順を要素の追加順だと考える
修正: 集合は順序づけられていないため、表示される要素の順序は予想と異なることがあります。
確認問題
Q1a = set('abracadabra')、b = set('alacazam') のとき、a & b の結果はどれ?
答え: {'a', 'c'}
& は両方に存在する文字だけを残します。a にも b にもあるのは a と c です。
Q2同じ a と b で、a - b の結果に入る文字はどれ?
答え: r, d, b
- は a にあって b にない文字を残します。a のユニークな文字 a, r, b, c, d のうち、b にもある a と c を除いた r, d, b です。
Q3同じ a と b で、a ^ b の結果に入らない文字はどれ?
答え: a, c
^ は a または b にあるが両方にはない文字を残すため、両方にある a と c は結果に入りません。
到達チェック
- 4つの演算子と名称(和・積・差・対称差)を対応づけられる
- 要素を3グループに分けて、各演算子の結果を求められる
- 差だけは左右を入れ替えると結果が変わると言える
- 集合は重複せず、順序づけられていないと説明できる
関連ページで確認する
同じ資格で次に知りたいこと
- 集合の演算子とメソッドの違い|| & - ^ と union()・intersection()の引数の扱い(Python3基礎)
集合の | & - ^ と、union()・intersection()・difference()・symmetric_difference()の違いを、引数に渡せるもの、リストを渡したときの結果、動作例で解説。Python3エンジニア認定基礎試験の集合型の確認問題つきです。
- 辞書の pop() と popitem() の違い|キー指定か末尾か(Python3基礎)
辞書の pop() は指定したキーの値を取り出し、popitem() は最後に追加された(キー, 値)の組を取り出します。Python 公式ドキュメントの規定、Python 3.9.6 での実行結果、確認問題つきで整理します。
- re.match()とre.search()の違い|文字列の先頭だけ調べるか、どこにあっても探すか(Python3基礎)
re.match()とre.search()の違いを、調べる範囲、結果が
Noneになる場合、MULTILINEとの関係、fullmatch()との違いで解説。Python3エンジニア認定基礎試験の第10章(reモジュール)の確認問題つきです。
よくある質問
Q集合の和・積・差・対称差はどの演算子で書きますか?
和が |、積が &、差が -、対称差が ^ です。公式チュートリアルの例で各演算子の結果が示されています。
Qa ^ b は何を求めますか?
公式チュートリアルは「aまたはbにあるが、両方にはない文字」と説明しています。対称差です。
Qa - b と b - a は同じ結果になりますか?
いいえ。差は左の集合を基準にするため、左右を入れ替えると別の結果になります。
Q集合の要素は追加した順に並びますか?
いいえ。集合は順序づけられていないため、表示すると要素が予想とは異なる順序で現れることがあります。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: AI資格ドリル編集部(運営者情報を見る)
