用語比較
リストと集合と辞書の使い分け
リストは並んだ要素を番号で扱い、集合は重複のない要素の所属判定に使い、辞書はキーで値を引きます。三つとも波括弧や角括弧で書くため見た目が似ていますが、順序・重複・取り出し方が違います。
Python3エンジニア認定基礎試験の「データ構造」では、リスト・タプル・集合・辞書の性質を取り違える選択肢が出ます。重複を除くなら集合、キーで引くなら辞書、順番と変更が要るならリストと分けると、設問の語で判定できます。
このページは、公式チュートリアルの記述を根拠に、順序、重複、取り出し方、空のものの作り方という四つの軸で比較します。タプルとの違いは、別ページのリストとタプルの違いで確認できます。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。Python3エンジニア認定基礎試験の一次情報確認日: 2026-09-18。
結論
リスト
変更可能で、要素は通常は同じ型のオブジェクト。たいてい反復(イテレート)によって要素にアクセスする。
集合
重複する要素を持たない順序なしのコレクション。基本的な用途は所属判定と重複要素の除去。和・積・差などの集合演算ができる。
辞書
キーでインデックス化された、キーと値のペアの集まり。キーは変更不能な型で、1つの辞書の中で一意。
違いを表で確認
| 比較軸 | リスト | 集合 |
|---|---|---|
| 要素の取り出し方 | リスト:インデックス(番号)や反復で取り出す | 集合:取り出しではなく、所属判定(in)で使う。辞書:キーを指定して値を取り出す |
| 重複 | リスト:同じ値を複数持てる | 集合:重複する要素を持たない。辞書:キーは一意 |
| 順序 | リスト:要素が並んだシーケンス | 集合:順序なし。辞書:list(d)はキーを挿入順で返す |
| 典型的な用途 | リスト:順に処理する要素の並び | 集合:所属判定、重複の除去。辞書:キーに対応する値の管理 |
| 空のものの作り方 | リスト:[] | 集合:set()({}は空の辞書になる)。辞書:{} |
| 選択肢で探すキーワード | インデックス、スライス、append() | 重複なし、所属判定、集合演算、キーと値、KeyError、get() |
Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)
試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。
どこで迷っているかを切り分ける
波括弧の見た目だけで集合と辞書を区別している人
集合も辞書も波括弧で書きます。区別する手がかりは、中身がキーと値のペア(コロン区切り)か、値だけかです。空の波括弧 {} が辞書になる点は、試験で最も狙われる取り違えなので、集合の空は set() と覚えます。
重複を取り除きたいときにリストのまま処理している人
公式チュートリアルは、シーケンスにset()を使うと重複要素が除かれると述べています。重複の除去や所属判定が目的なら、集合を選ぶのが基本です。ただし集合は順序なしなので、並びを保つ必要がある場面ではリストを使います。
辞書のキーに何を使えるか迷う人
辞書のキーは変更不能な型でなければなりません。文字列と数値は常にキーにでき、タプルは文字列・数値・他のタプルだけを含む場合にキーにできます。リストはその場で変更できるため、キーに使えません。
具体例で使い分ける
例 1
『重複を除いて、含まれているかを調べたい』と問われた場合
果物名の並びから、重複を除いたうえで、特定の名前が含まれるかを調べる処理に適したデータ構造を選ぶ設問です。
- 集合は、重複する要素を持たない順序なしのコレクションで、基本的な用途は所属判定と重複要素の除去です。
- リストでも in で調べられますが、設問の目的は重複の除去と所属判定の両方なので、集合が最も合います。
- キーと値の対応は問われていないので、辞書ではありません。
結論: 重複の除去と所属判定の語が出たら、集合を選びます。
例 2
『名前から電話番号を引きたい』と問われた場合
名前に対応する電話番号を、名前を指定して取り出すデータ構造を選ぶ設問です。
- 辞書は、番号ではなくキーでインデックス化されています。名前をキー、電話番号を値にすれば、名前を指定して値を取り出せます。
- 存在しないキーを d[key] で取り出すとKeyErrorが発生します。避けるにはget()を使い、キーがなければNone(または指定した既定値)を返します。
- リストでは、名前から番号を引くのに、番号(インデックス)への置き換えが別に必要です。
結論: キーで値を引く語が出たら、辞書を選びます。
例 3
『x = {} で作られるものは何か』と問われた場合
波括弧だけで作ったオブジェクトの型を答える設問です。
- 空の集合を作るにはset()を使う必要があり、{}は空の辞書を作成すると公式チュートリアルは説明しています。
- 波括弧が集合の記号でもあるため、{} も集合だと思い込むと誤ります。
- 要素が値だけで並んでいれば集合、キーと値のペアなら辞書です。
結論: {} は空の辞書で、空の集合は set() と答えます。
問題文から答えを選ぶ手順
- 1
何をしたいかを確認する
順に並べて扱うならリスト、重複を除く・所属判定をするなら集合、キーで値を引くなら辞書です。
- 2
『キーと値』の語を探す
キーを指定して値を取り出す、または存在しないキーでKeyErrorという記述があれば、辞書です。
- 3
『重複なし』『所属判定』『集合演算』の語を探す
重複する要素を持たない、和・積・差といった演算がある、という記述があれば、集合です。
- 4
空の波括弧を確認する
{} だけの式は空の辞書です。空の集合は set() と書かれているかを確かめます。
試験での見分け方
- 1集合は、重複する要素を持たない順序なしのコレクション。
- 2集合の基本的な用途は、所属判定と重複要素の除去。
- 3辞書は、キーでインデックス化され、キーは変更不能な型で、1つの辞書の中で一意。
- 4空の集合は set() で作る。{} は空の辞書になる。
- 5リストは辞書のキーに使えない(その場で変更できるため)。
- 6存在しないキーを d[key] で取り出すとKeyError。get() ならNone(または既定値)を返す。
誤答しやすい選択肢
{} で空の集合ができると思う
修正: 空の集合を作るにはset()を使う必要があります。{} は空の辞書を作成します。公式チュートリアルが注意書きとして明記している点で、試験でも狙われます。
集合の要素を、書いた順に取り出せると思う
修正: 集合は順序なしのコレクションです。反復や表示のとき、要素が予想と異なる順で現れることがあります。並びが必要な場面では、リストを使います。
辞書のキーにリストを使えると思う
修正: 辞書のキーは変更不能な型でなければなりません。リストは、インデックス代入・スライス代入・append()やextend()でその場で変更できるため、キーに使えません。タプルなら、文字列・数値・他のタプルだけを含む場合に使えます。
辞書で存在しないキーを指定してもNoneが返ると思う
修正: d[key] でアクセスするとKeyErrorが発生します。Noneや既定値を返すのは、get()メソッドを使ったときです。
確認問題
Q1重複する要素を持たない、順序なしのコレクションはどれですか?(リスト・集合・辞書)
答え: 集合
公式チュートリアルは、集合を重複する要素を持たない順序なしのコレクションと説明しています。
Q2空の集合を作る式は set() と {} のどちらですか?
答え: set()
{} は空の辞書を作成します。空の集合を作るにはset()を使う必要があります。
Q3辞書で、存在しないキーに対して、エラーにならずNoneを返す取り出し方は何ですか?
答え: get() メソッド
d[key] で存在しないキーを指定するとKeyErrorが発生します。get()は、キーがなければNone(または指定した既定値)を返します。
到達チェック
- 集合の定義(重複なし・順序なし)を一文で言える
- 辞書がキーでインデックス化されることを説明できる
- {} が空の辞書であり、空の集合は set() だと答えられる
- 辞書のキーにリストが使えない理由を説明できる
- d[key] と get() の違いを説明できる
関連ページで確認する
同じ資格で次に知りたいこと
- ミュータブルとイミュータブルの違い|リスト・タプル・文字列の変更と代入をPython3エンジニア認定基礎試験で判断する
ミュータブル(変更できる)とイミュータブル(変更できない)の違いを、リスト・タプル・文字列の公式チュートリアルの記述、代入で参照が共有される動き、スライスによる浅いコピー、確認問題つきで整理します。
- リスト内包表記とfor文の使い分け
リスト内包表記とfor文の使い分けを、同じ処理の書き比べ、ifの位置、ループ変数の扱い、Python 3 エンジニア認定基礎試験での読み取り手順と確認問題まで解説します。
- 内包表記のifの位置の違い|末尾のif句(絞り込み)と先頭のif-else(値の切り替え)
リスト内包表記の末尾にif句を置く書き方と、先頭にif-elseの条件式を置く書き方の違いを、要素数が変わるかどうか、elseを書けるかどうかから解説。Python 3 エンジニア認定基礎試験での読み取り手順と確認問題つきです。
よくある質問
Q集合と辞書は、どちらも波括弧で書きますか?
はい。ただし、空の波括弧 {} は空の辞書になります。空の集合はset()で作ります。
Qリストから重複を取り除くには、どうしますか?
公式チュートリアルは、シーケンスにset()を使うと重複要素が除かれると述べています。ただし集合は順序なしなので、元の並びは保たれない場合があります。
Q辞書のキーが重複したらどうなりますか?
辞書のキーは、1つの辞書の中で一意である必要があります。同じキーは1つしか持てません。
Q試験中に三つを最短で見分ける方法は?
『キーと値』『KeyError』ならば辞書、『重複なし』『所属判定』ならば集合、『インデックス』『並び』ならばリストと判定します。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: ミナト編集部(運営者情報を見る)
