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

Python辞書の理解


このチュートリアルでは、Pythonで辞書内包表記を使用する方法を学習します。リスト内包表記に既に精通している場合は、辞書内包表記を学ぶのにそれほど時間はかかりません。

辞書を作成するには、キー:値ペアが必要です。辞書の理解を使用してこれらのキーと値のペアを取得するにはどうすればよいですか?辞書理解の一般的な声明を参照してください。

{key: value for ___ in iterable}

辞書の理解を完了するには、上記のステートメントを入力する必要があります。それを埋める方法はたくさんあります。最も一般的な方法をいくつか見てみましょう。

キーとして数値を生成し、10の範囲内の値としてそれらの平方を生成する方法を見てみましょう。結果は {0:0、1:1、2:4、3:9、4:16、5:のようになります。 25、6:36、7:49、8:64、9:81}。 以下のコードを参照してください。

# creating the dictionary
squares = {i: i ** 2 for i in range(10)}
# printing the dictionary
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つのリストから並列値を取得できます。 [1、2、3、4、5]から辞書を作成する方法を見てみましょう および[a、b、c、d、e]。

# keys
keys = ['a', 'b', 'c', 'd', 'e']
# values
values = [1, 2, 3, 4, 5]
# creating a dict from the above lists
dictionary = {key: value for (key, value) in zip(keys, values)}
# printing the dictionary
print(dictionary)

出力

上記のプログラムを実行すると、次の出力が得られます。

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

enumeratemethodを使用して、キーとしてインデックスを使用して単一のリストから辞書を生成することもできます。方法を見てみましょう。

# values
values = ['a', 'b', 'c', 'd', 'e']
# generating a dict using enumerate
dictionary = {key: value for (key, value) in enumerate(values)}
# printing the dict
print(dictionary)

出力

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

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

結論

必要に応じて辞書内包表記を使用できます。リスト内包表記を学ぶ最良の方法は、可能性があるときはいつでもそれらを使用することです。チュートリアルで疑問がある場合は、コメントセクションでそれらについて言及してください。


  1. Pythonの辞書メソッド

    以下に示すPythonの辞書メソッドがいくつかあります- Sr.No メソッドの名前と説明 1 Python辞書clear() すべてのアイテムをクリアする 2 Python辞書copy() 辞書のコピー 3 keys()からのPython辞書 指定されたシーケンスから辞書を作成します 4 Pythonディクショナリget() キーの価値を得る 5 Python辞書items() 辞書のアイテムの表示 6 Python辞書keys() すべてのキーを表示 7

  2. Pythonでリスト内包表記の辞書を作成するにはどうすればよいですか?

    組み込み関数であるzip()関数は、2つのリストの同じインデックスにある要素を含むタプルのリストを提供します。 2つのリストがそれぞれキーと値である場合、このzipオブジェクトを使用して、別の組み込み関数dict()を使用して辞書オブジェクトを作成できます。 >>> L1=['a','b','c','d'] >>> L2=[1,2,3,4] >>> d1=dict(zip(L1,L2)) >>> d1 {'a': 1, 'b':