Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの辞書内包表記を徹底解説!基本構文から実践例まで

このチュートリアルでは、Pythonにおける辞書内包表記(dictionary comprehension)の使い方を詳しく解説します。すでにリスト内包表記に慣れている方であれば、辞書内包表記も短時間でマスターできるはずです。

辞書内包表記の基本構文

辞書を作成するには「キー: 値」のペアが必要です。では、辞書内包表記を使ってこのペアをどのように生成するのでしょうか?まずは一般的な構文を見てみましょう。

{key: value for ___ in iterable}

この構文の空欄部分を埋めることで、辞書内包表記が完成します。記述方法はさまざまありますが、ここでは最もよく使われるパターンをいくつか紹介します。

例1:数値とその2乗で辞書を作成する

まずは、0から9までの数値をキーとし、その2乗を値とする辞書を生成してみましょう。期待される結果は次のとおりです。{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

コード

# 辞書を作成
squares = {i: i ** 2 for i in range(10)}
# 辞書を出力
print(squares)

出力結果

上記のコードを実行すると、以下の結果が得られます。

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

例2:zipを使って2つのリストから辞書を作成する

次に、2つのリストから辞書を作成する方法を見ていきましょう。zipメソッドを使うと、2つのリストから対応する要素を並行して取り出せます。ここでは、['a', 'b', 'c', 'd', 'e'] をキー、[1, 2, 3, 4, 5] を値として辞書を作成してみます。

コード

# キーのリスト
keys = ['a', 'b', 'c', 'd', 'e']
# 値のリスト
values = [1, 2, 3, 4, 5]
# 上記のリストから辞書を作成
dictionary = {key: value for (key, value) in zip(keys, values)}
# 辞書を出力
print(dictionary)

出力結果

このプログラムを実行すると、以下の出力が得られます。

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

例3:enumerateを使って1つのリストから辞書を作成する

また、enumerateメソッドを使えば、1つのリストからインデックスをキーとした辞書を生成することもできます。具体的な方法を見てみましょう。

コード

# 値のリスト
values = ['a', 'b', 'c', 'd', 'e']
# enumerateを使って辞書を生成
dictionary = {key: value for (key, value) in enumerate(values)}
# 辞書を出力
print(dictionary)

出力結果

上記のコードを実行すると、以下の出力が得られます。

{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}

まとめ

辞書内包表記は、用途に応じて柔軟に活用できます。マスターへの近道は、可能性がある場面では積極的に使ってみることです。本チュートリアルについて不明な点があれば、ぜひコメント欄でお知らせください。

  1. Pythonの辞書メソッド一覧|使い方と機能をわかりやすく解説

    はじめに Pythonの辞書(dict)は、キーと値のペアでデータを管理できる非常に便利なデータ構造です。この記事では、辞書で直接使える辞書メソッドと、辞書の操作に役立つ組み込み関数を一覧表にまとめて紹介します。それぞれの機能を把握しておくと、日常的なコーディングの効率が大きく向上します。 辞書の主なメソッド一覧 以下は、Pythonの辞書オブジェクトで利用できる代表的なメソッドです。 No.メソッド名と説明 1dict.clear()辞書内のすべての要素(キーと値のペア)を削除します。 2dict.copy()辞書のコピー(浅いコピー)を作成して返します。 3dict.fromkeys(

  2. Pythonでzip()と内包表記を使ってリストから辞書を作成する方法

    Pythonでは、2つのリスト(キーと値)を組み合わせて辞書を作成したい場面がよくあります。この記事では、組み込み関数 zip() と dict()、さらにPython 3.xで利用できる辞書内包表記を使った2つの方法をわかりやすく解説します。 方法1:dict()とzip()を組み合わせる zip() はPythonの組み込み関数で、複数のリストから同じインデックス位置にある要素を取り出し、タプルのペア(イテレータ)として返します。一方のリストをキー、もう一方を値とすれば、このzipオブジェクトを組み込み関数 dict() に渡すだけで、簡単に辞書オブジェクトを構築できます。 >&