用語比較
辞書内包表記とリスト内包表記の違い(Python 3 エンジニア認定基礎試験)
リスト内包表記は角括弧で囲み、結果がリストになります。辞書内包表記は波括弧で囲み、「キー: 値」の組を作って結果が辞書になります。
公式チュートリアルは、5.1.3でリスト内包表記を、5.5で辞書内包表記を扱っています。Python 3 エンジニア認定基礎試験は、オライリー・ジャパン「Pythonチュートリアル」の掲載内容を出題範囲とし、5章データ構造は40問中7問と案内されています。
このページは、[x**2 for x in range(10)] と {x: x**2 for x in (2, 4, 6)} のように、見た目が似た二つの式を読み分けたい人向けです。内包表記とfor文の使い分けやリスト・集合・辞書の違いは別のページで扱い、ここでは二つの内包表記の違いに絞ります。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。Python3エンジニア認定基礎試験の一次情報確認日: 2026-09-18。
結論
リスト内包表記
角括弧の中に、式、for句、0個以上のforまたはif句を書く。結果はリスト。例は [x**2 for x in range(10)]。
辞書内包表記
波括弧の中に「キー: 値」の式とfor句を書く。結果は辞書。公式チュートリアルの例は {x: x**2 for x in (2, 4, 6)} で、結果は {2: 4, 4: 16, 6: 36}。
違いを表で確認
| 比較軸 | リスト内包表記 | 辞書内包表記 |
|---|---|---|
| 囲む括弧 | リスト内包表記:角括弧 [ ] | 辞書内包表記:波括弧 { } |
| 先頭に書くもの | リスト内包表記:要素になる式(x**2 など) | 辞書内包表記:キーと値の組(x: x**2 など) |
| 結果の型 | リスト内包表記:リスト | 辞書内包表記:辞書(キーと値の組の集まり) |
| 結果の例 | リスト内包表記:[x**2 for x in range(10)] は平方のリスト | 辞書内包表記:{x: x**2 for x in (2, 4, 6)} は {2: 4, 4: 16, 6: 36} |
| 問題文の手がかり | リスト内包表記:角括弧、リスト、インデックス | 辞書内包表記:波括弧、コロン、キー、値 |
Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)
試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。
どこで迷っているかを切り分ける
角括弧と波括弧のどちらがどちらか、とっさに分からなくなる人
リストは角括弧、辞書は波括弧です。内包表記でも同じ括弧が使われます。辞書内包表記は、先頭の式にコロンがあるかどうかも見分けの手がかりです。
辞書内包表記の結果を、リストと同じようにインデックスで読もうとする人
公式チュートリアルは、辞書はキーでインデックス化されると述べています。結果の辞書の要素は、先頭からの位置ではなくキーで取り出します。
キーの重複や、キーにできる型を気にする人
公式チュートリアルは、辞書をキーと値のペアの集まりと考えるのが最良で、キーは一つの辞書の中で一意でなければならないと述べています。キーは変更不能な型にします。
具体例で使い分ける
例 1
{x: x**2 for x in (2, 4, 6)} の結果を答える
辞書内包表記を実行した結果を選ぶ設問です。
- 波括弧とコロンがあるので、結果は辞書です。
- xが2、4、6のとき、キーがx、値がx**2になります。
- 公式チュートリアルに同じ例があり、結果は {2: 4, 4: 16, 6: 36} です。
結論: {2: 4, 4: 16, 6: 36} です。
例 2
[x**2 for x in range(10)] の結果の型を答える
角括弧の内包表記を実行した結果の型を問う設問です。
- 角括弧で囲まれているので、結果はリストです。
- xは0から9までで、各要素はx**2になります。
結論: 平方のリストです。
例 3
空の辞書を作る書き方を答える
空のリストと空の辞書の書き方を取り違えないか確認する設問です。
- 公式チュートリアルは、空の辞書は波括弧 {} で作ると述べています。
- 空のリストは角括弧 [] です。
結論: {} です。
問題文から答えを選ぶ手順
- 1
括弧を見る
角括弧ならリスト内包表記、波括弧なら辞書内包表記(または集合)の候補にします。
- 2
先頭の式にコロンがあるか見る
「キー: 値」の形なら辞書内包表記です。
- 3
for句を読む
for句で変数がどの値を順に取るかを書き出します。
- 4
結果を組み立てる
リストなら要素を並べ、辞書ならキーと値の組を並べます。
試験での見分け方
- 1角括弧で式だけならリスト内包表記。結果はリスト。
- 2波括弧でキー: 値の形なら辞書内包表記。結果は辞書。
- 3空の辞書は {}、空のリストは []。
- 4辞書のキーは一つの辞書の中で一意で、変更不能な型にする。
誤答しやすい選択肢
波括弧の内包表記を、すべて集合の内包表記だと考える
修正: 先頭の式がキー: 値の形なら辞書内包表記です。コロンの有無で見分けます。
辞書内包表記の結果を位置で取り出そうとする
修正: 辞書はキーでインデックス化されます。位置ではなくキーで値を取り出します。
空の辞書を [] で作ろうとする
修正: 空の辞書は {} です。[] は空のリストです。
確認問題
Q1{x: x**2 for x in (2, 4, 6)} を実行した結果は何ですか?
答え: {2: 4, 4: 16, 6: 36}
公式チュートリアル5.5に同じ例があり、キーがx、値がx**2の辞書になります。
Q2空の辞書は何で作りますか?
答え: 波括弧 {}
公式チュートリアルは、空の辞書は波括弧 {} で作ると述べています。
Q3辞書はどのようにインデックス化されていますか?
答え: キーでインデックス化されている
公式チュートリアルは、ある範囲の数でインデックス化されるシーケンスと異なり、辞書はキーでインデックス化されると述べています。
到達チェック
- 角括弧と波括弧の内包表記を見分けられる
- 辞書内包表記の結果をキーと値の組で書き出せる
- 空の辞書と空のリストの書き方を言える
- 辞書のキーの条件を言える
関連ページで確認する
同じ資格で次に知りたいこと
- lambda式とdef関数の違い(単一の式・名前・return)
lambda式とdef関数の違いを、単一の式という制限、関数名、return の書き方、list.sort() の key への渡し方、Python 3.9 で実際に実行した出力、Python3エンジニア認定基礎試験での判断手順と確認問題まで解説します。
- f文字列とformatメソッドの違い(書式化の書き方とフォーマット指定子)
f文字列(フォーマット済み文字列リテラル)とstr.format()メソッドの違いを、公式チュートリアル7.1の例とあわせて解説。Python 3 エンジニア認定基礎試験の第7章で問われる書き方の区別と確認問題つきです。
- with文とopen()・close()の違い(ファイルを閉じる書き方)
with文を使う書き方と、open()のあとにclose()を自分で呼ぶ書き方の違いを、閉じられる時点、例外が起きたときの結果、閉じたあとに読んだときのエラー、Python 3.9 で実際に実行した出力、Python3エンジニア認定基礎試験での判断手順と確認問題まで解説します。
よくある質問
Q辞書内包表記とリスト内包表記の違いは何ですか?
リスト内包表記は角括弧で式を書いて結果がリスト、辞書内包表記は波括弧でキー: 値を書いて結果が辞書になります。
Q辞書内包表記は公式チュートリアルのどこにありますか?
5.5「辞書型」に、{x: x**2 for x in (2, 4, 6)} が {2: 4, 4: 16, 6: 36} になる例があります。
Q空の辞書はどう書きますか?
波括弧 {} で作ります。
Q基礎試験の出題範囲に辞書内包表記は含まれますか?
試験案内は、オライリー・ジャパン「Pythonチュートリアル」の掲載内容を出題範囲としており、辞書内包表記は公式チュートリアルの5.5に載っています。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: ミナト編集部(運営者情報を見る)
