HOWTO · Python

Python 辞書を初期化する

このチュートリアルは、Python で辞書を初期化する方法を示しています

Python 辞書は順序付けられており、変更可能です。辞書では、重複を保存することはできません。

Python 3.6 以下のバージョンでは、辞書は順序付けされていませんでした。Python 3.7 以降の導入後、辞書が注文されます。

このチュートリアルでは、Python で辞書を初期化するためのさまざまな方法について説明します。

Python でリテラル構文を使用して辞書を初期化する

辞書は中括弧 {} を使用して作成および初期化でき、キーと値が含まれています。

次のコードは、リテラルを使用して Python ディクショナリを初期化します。

dict1 = {"X": 2, "Y": 3, "Z": 4}
print(dict1)

出力:

{'X': 2, 'Y': 3, 'Z': 4}

dict() コンストラクターを使用して Python ディクショナリを初期化する

dict() コンストラクターを使用して、キーワード引数、または単独の辞書とそのキーワード引数、またはキーと値のペアの単独の反復可能配列から辞書を初期化できます。

dict() コンストラクターでパラメーターを渡し、辞書を作成できます。

次のコードは、dict() コンストラクターを使用して Python で辞書を初期化します。

dict1 = dict(X=1, Y=2, Z=3)
print(dict1)

出力:

{'X': 1, 'Y': 2, 'Z': 3}

fromkeys() メソッドを使用して Python ディクショナリを初期化する

fromkeys() 関数は、すべてのキーの値が同じ場合に使用できます。

次のコードは、fromkeys() メソッドを使用して Python ディクショナリを初期化します。

dict1 = dict.fromkeys(["X", "Y", "Z"], 0)
print(dict1)

出力:

{'X': 0, 'Y': 0, 'Z': 0}

構文で特定の値が指定されていない場合、辞書はすべてのキーの値を None として初期化できます。

dict1 = dict.fromkeys(["X", "Y", "Z"])
print(dict1)

出力:

{'X': None, 'Y': None, 'Z': None}

タプルのリストを使用して Python ディクショナリを初期化する

タプルのリストを使用して、Python で辞書を初期化することもできます。このメソッドは、dict() コンストラクターを使用してこれを実装します。

タプルは、順序付けられた不変のオブジェクトのコレクションです。1つの変数に複数のアイテムをストックするために利用できます。

リストはタプルに似ていますが、唯一の違いはリストを変更できることと、タプルがそれを許可しないことです。

次のコードは、タプルのリストを使用して Python で辞書を初期化します。

LOT = [("X", 5), ("Y", 6), ("Z", 8)]
dict1 = dict(LOT)
print(dict1)

出力:

{'X': 5, 'Y': 6, 'Z': 8}

2つのリストを使用して Python ディクショナリを初期化する

この場合、2つのリストを宣言します。最初のリストの値をキーとして使用し、2 番目のリストを初期化するディクショナリの値として使用します。

上記のステートメントを実装するには、zip() 関数を使用できます。この関数は、指定された両方のリストを並行して繰り返します。

zip() 関数は、すべてのエントリのキーと値のペアを並行して作成し、zip オブジェクトを正常に作成します。このオブジェクトは、dict() コンストラクターに渡して辞書を作成できます。

次のコードは、2つのリストを使用して Python で辞書を初期化します。

if __name__ == "__main__":

    L1 = ["X", "Y", "Z"]
    L2 = [5, 6, 8]
    dict1 = dict(zip(L1, L2))
    print(dict1)

出力:

{'X': 5, 'Y': 6, 'Z': 8}

この場合、L1 はキーとして使用されるリストであり、L2 は初期化されたディクショナリの値のリストとして使用されます。