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

Pythonネスト辞書:ハウツーガイド

Pythonネスト辞書は、別の辞書内の辞書です。これにより、既存のディクショナリ内でKey-Valueマッピング構造を使用してデータを格納できます。

Pythonで辞書を操作しているときに、辞書に別の辞書が含まれている場合があります。

このデータの構造は、多くの場合、ネストされた辞書と呼ばれます。 Pythonコードにはさまざまなユースケースがあります。

このチュートリアルでは、Pythonのネストされた辞書の基本について説明します。ネストされた辞書を作成および変更する方法を学ぶことができるように、いくつかの例を見ていきます。

Python辞書リフレッシャー

辞書はPythonのマッピングデータ型です。 Pythonディクショナリはバインドします—またはマップ —値の鍵であり、データを保存する効果的な方法を提供します。

キーが値にマップされている場合、キーを参照することにより、その値に格納されているデータを取得できます。つまり、ある意味で、キーはラベルのように機能します。地元のアイスクリーム店TheFrozenSpoonで販売されているアイスクリームフレーバーの価格を保存した辞書の例を次に示します。

ice_cream_flavors = {
	"Vanilla": 0.50,
	"Chocolate": 0.50,
	"Cookies and Cream": 0.75,
	"Strawberry": 0.65,
	"Buttered Pecan": 0.90
}

この辞書のキーは私たちのアイスクリーム(つまり「バニラ」)の名前であり、値は各アイスクリームのスクープあたりの価格です。

Pythonネスト辞書

Pythonのネストされた辞書は、辞書内の辞書です。これらは、別の辞書内の辞書データを表すために使用されます。辞書には、必要な数の辞書をネストできます。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

ネストされたディクショナリは、さまざまなコンポーネントディクショナリを1つの大きなディクショナリに格納する場合に役立ちます。

ネストされた辞書がどのように機能するかを説明するために、例を見ていきましょう。 TheFrozenSpoonで販売されているアイスクリームの各フレーバーに関する辞書を格納する辞書を作成するとします。大きな辞書の各辞書には、次のリストが必要です。

  • アイスクリームの名前
  • その価格
  • 在庫数

このデータを格納するネストされた辞書は次のようになります。

ice_cream_flavors = {
	0: { "flavor": "Vanilla", "price": 0.50, "pints": 20 },
	1: { "flavor": "Chocolate", "price": 0.50, "pints": 31 },
2: { "flavor": "Cookies and Cream", "price": 0.75, "pints": 14 }
}

このコードでは、 ice_cream_flavorsという1つの大きな辞書を宣言しています。 。この辞書には3つの辞書が含まれており、それぞれにアイスクリームの特定のフレーバーに関する情報が格納されています。

ネストされた辞書を使用しなかった場合、これらの各辞書を別々の変数に格納する必要がありました。各辞書にはアイスクリームのフレーバーに関する情報が格納されているため、これは直感に反します。

ネストされた辞書のアイテムにアクセスする

ネストされた辞書の項目にアクセスするには、索引付け構文を使用できます。

辞書でインデックス値が0のアイスクリームの価格を取得するとします。このコードを使用してこれを行うことができます:

ice_cream_flavors = {
	0: { "flavor": "Vanilla", "price": 0.50, "pints": 20 },
	1: { "flavor": "Chocolate", "price": 0.50, "pints": 31 },
2: { "flavor": "Cookies and Cream", "price": 0.75, "pints": 14 }
}

print(ice_cream_flavors[0]["price"])
print(ice_cream_flavors[0]["flavor"])

コードは次のようになります:

0.50
Vanilla

このコードでは、最初に、取得する大きなディクショナリに値が含まれているアイテムキーを指定します。この場合、インデックス値が0のレコードにアクセスしたかったのです。

次に、取得する内部ディクショナリ内のアイテムの名前を指定します。この場合、アイスクリームの価格とフレーバーを取得したいと思いました。そこで、価格を指定しました およびフレーバー 両方のprint() ステートメント。

ネストされた辞書Python:要素の追加

ネストされたディクショナリに要素を追加するには、アイテムの変更に使用したのと同じ構文を使用できます。ネストされたディクショナリにアイテムを追加するために使用する必要のあるメソッドはありません。代入演算子を使用する必要があります。

アイテムを追加するための構文は次のとおりです。

dictionary_name[new_key_name] = new_value

販売中のバニラアイスクリームに関する情報を格納する辞書があるとします。アイスクリームに割引があるかどうかを追跡したいと思います。次のコードを使用してこれを行うことができます:

ice_cream_flavors = {
	0: { "flavor": "Vanilla", "price": 0.50, "pints": 20 },
	1: { "flavor": "Chocolate", "price": 0.50, "pints": 31 },
2: { "flavor": "Cookies and Cream", "price": 0.75, "pints": 14 }
}

ice_cream_flavors[0]["discount"] = True

print(ice_cream_flavors[0])
>

コードを実行して、何が起こるか見てみましょう:

{'flavor': 'Vanilla', 'price': 0.5, 'pints': 20, 'discount': True}

辞書はPython変数「ice_cream_flavors」に保存されています。

割引というキーを追加しました 辞書に。このキーのインデックス位置は0です。このキーの値をTrueに設定します。次に、 ice_cream_flavorsにインデックス値0の辞書を印刷しました。 ネストされた辞書。これは、割引が キーが追加されました。

この構文を使用して、既存の辞書の要素を更新できます。チョコレートアイスクリームの価格を1スクープあたり0.45ドルに変更したいとします。このコードを使用してこれを行うことができます:

ice_cream_flavors = {
	0: { "flavor": "Vanilla", "price": 0.50, "pints": 20 },
	1: { "flavor": "Chocolate", "price": 0.50, "pints": 31 },
2: { "flavor": "Cookies and Cream", "price": 0.75, "pints": 14 }
}

ice_cream_flavors[1]["price"] = 0.45

print(ice_cream_flavors[1])

コードは次のようになります:

{'flavor': 'Chocolate', 'price': 0.45, 'pints': 31}

価格の値を変更しました チョコレートアイスクリームの鍵は0.45ドルです。

そのために、価格の辞書のインデックス値を指定しました。 1として変更したい値。この値には、辞書にあるチョコレートアイスクリームに関する情報が含まれています。次に、価格に新しい値を割り当てました。 キー。

ネストされた辞書Python:要素の削除

ネストされた辞書に保存されているアイテムを削除するには、 delを使用できます。 声明。 delステートメントを使用すると、オブジェクトを削除できます。 delは、Pythonのbreakステートメントのように、独自の行に記述され、その後に削除する辞書の項目が続きます。

一時的に当店でクッキーとクリームアイスクリームを提供しなくなったとします。クッキーとクリームアイスクリームを保管していた冷凍庫が機能しなくなり、商品が溶けました。

次のコードを使用して、ネストされた辞書からこのアイスクリームを削除できます。

ice_cream_flavors = {
	0: { "flavor": "Vanilla", "price": 0.50, "pints": 20 },
	1: { "flavor": "Chocolate", "price": 0.50, "pints": 31 },
2: { "flavor": "Cookies and Cream", "price": 0.75, "pints": 14 }
}

del ice_cream_flavors[2]

print(ice_cream_flavors)

コードは次のようになります:

{0: {'flavor': 'Vanilla', 'price': 0.5, 'pints': 20}, 1: {'flavor': 'Chocolate', 'price': 0.5, 'pints': 31}}

このコードでは、 delを使用しました キーが2に等しいネストされた辞書の値を削除するステートメント。ご覧のとおり、これにより Cookies and Creamのエントリが削除されました。 ネストされた辞書から。

Pythonのネストされた辞書を反復処理する

ここで、ネストされた辞書の各辞書の内容をコンソールに出力するとします。このタスクをどのように達成できますか?

それは素晴らしい質問です。ネストされた辞書の内容を出力するために、Pythonのforループを使用してそれを反復処理できます。また、Pythonディクショナリitems()メソッドを使用して、ディクショナリ内のキーと値のリストを取得します。

ice_cream_flavors = {
	0: { "flavor": "Vanilla", "price": 0.50, "pints": 20 },
	1: { "flavor": "Chocolate", "price": 0.50, "pints": 31 },
2: { "flavor": "Cookies and Cream", "price": 0.75, "pints": 14 }
}

for key, value in ice_cream_flavors.items():
	print("Ice Cream:", key)

	for k, v in value.items():
		print(k + ":", value[k])

コードは次のようになります:

Ice Cream: 0
flavor: Vanilla
price: 0.5
pints: 20
Ice Cream: 1
flavor: Chocolate
price: 0.5
pints: 31
Ice Cream: 2
flavor: Cookies and Cream
price: 0.75
pints: 14

コードを分解してみましょう。まず、アイスクリームフレーバーのネストされた辞書を定義しました。

次に、 ice_cream_flavorsの各キーと値を通過するforループを定義しました。 辞書。このループは.items()を使用します ice_cream_flavorsのすべてのキーと値のリストを生成します 辞書。ループを繰り返すことができます。

次に、アイスクリーム:を印刷します。 その後に、特定のアイスクリームに関連付けられたキーが続きます。

次に、別のforループを使用して、各のすべてのアイテムをループします。 ネストされた辞書にあります。これは、ネストされた辞書の各内部エントリ(バニラやチョコレートのエントリなど)を参照します。このループは、内部辞書の各キーの名前、コロン、そのキーに関連付けられた値を出力します。

結論

ネストされた辞書を使用すると、Pythonの辞書内に辞書を保存できます。

このチュートリアルでは、例を参照して、次の方法について説明しました。

  • ネストされた辞書を作成する
  • ネストされた辞書に要素を追加し、要素を更新します
  • ネストされた辞書から要素を削除する
  • ネストされた辞書を反復処理する

Pythonでのコーディングの詳細については、Pythonでコーディングする方法ガイドをご覧ください。


  1. Python Switchステートメント:ハウツーガイド

    JavaやC#とは異なり、Pythonには組み込みのswitchステートメントがありません。つまり、「switch…case」ステートメントを模倣する独自のコードを記述せずに、switch式を評価することはできません。 このガイドでは、Pythonで「switch…case」を作成する方法について説明し、コードで1つを作成する方法を学習できるようにfaux-switchステートメントの2つの例を説明します。 Switchステートメント:復習 switchステートメントを使用すると、実行するコードブロックのセットの1つを選択できます。これらは、プログラム内の複数の式を評価する方法です。

  2. Python Hello World:ハウツーガイド

    Pythonの「HelloWorld」プログラムは通常、コーダーがPythonで作成する最初のプログラムです。このプログラムは、printステートメントを使用してPythonコンソールに文字列を表示します。プログラムは次のようになります:print(“ Hello World”)。 Pythonバージョンが機能することを確認するために作成できる最初のプログラムの1つは、「HelloWorld」です。プログラムを作成するには、ターミナルまたは選択したコードエディター(Visual Studio Code、Vimなど)の2つの方法があります。 開始するには、マシンにPython3がインストー