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

Python3の辞書(dict)の使い方を徹底解説!作成・アクセス・追加・更新・削除の基本

Pythonの辞書(dict)とは

Pythonの辞書(dictionary)は、キーと値を「key-valueペア」として対応付けるデータ構造の一つです。最も頻繁に使われるデータ構造のひとつで、柔軟で便利な性質を多数備えています。辞書は以下のように、波括弧({})で囲んで表現します。

dict = {'day1':'Mon' ,'day2':'Tue','day3':'Wed'}

辞書内の各要素(キーと値のペア)は、キーと値をコロン(:)で区切って表現します。

辞書の作成

辞書は、キーと値のペアを波括弧の中に記述し、変数に代入するだけで簡単に作成できます。また、dict()メソッドを使って作成することも可能です。

Dict1 = {'day1':'Mon' ,'day2':'Tue','day3':'Wed'}
print(type(Dict1))
print(Dict1)

# dict()メソッドを使用する場合
dict2 = dict([('day1','Mon'),('day2','Tue'),('day3','Wed')])
print(type(dict2))
print(dict2)

出力

上記のコードを実行すると、次のような結果が得られます。

{'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}

ネストした辞書

辞書は入れ子(ネスト)構造にすることもできます。つまり、ある辞書の値として、別の辞書を持たせることが可能です。以下の例では、外側の辞書の中に「weekend」というキーがあり、その値として土曜日と日曜日の情報を含む内側の辞書が格納されています。

dict = {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed','weekend':{'d1':'Saturday','d2':'Sunday'}}
print(dict)

出力

上記のコードを実行すると、次のような結果が得られます。

{'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed', 'weekend': {'d1': 'Saturday', 'd2': 'Sunday'}}

辞書の値へのアクセス

辞書の要素にアクセスするには、角括弧([])の中にキーを指定します。また、get()メソッドを使って値を取得することもできます。get()メソッドは、指定したキーが存在しない場合にKeyErrorを発生させずにNoneを返すため、存在しないキーへのアクセスが起こりうる場面では安全に利用できます。

dict = {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed','weekend':{'d1':'Saturday','d2':'Sunday'}}
print(dict['day2'])
print(dict['weekend'])
print(dict.get('day3'))

出力

上記のコードを実行すると、次のような結果が得られます。

Tue
{'d1': 'Saturday', 'd2': 'Sunday'}
Wed

辞書への要素の追加

新しいキーと値のペアを追加することで、辞書に新しい要素を追加できます。さらに、別の辞書を値として追加すれば、ネストした辞書を作ることもできます。

dict = {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}
dict['day4']='Thu'
dict['day5']='Fri'
print(dict)

出力

上記のコードを実行すると、次のような結果が得られます。

{'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed', 'day4': 'Thu', 'day5': 'Fri'}

辞書の更新

辞書は、新しいエントリ(キーと値のペア)の追加や、既存エントリの変更によって更新できます。新しい要素の追加方法については前述の通りです。ここでは、既存のエントリを変更する方法を見ていきましょう。既存のキーに対して新しい値を代入するだけで、値を上書きできます。

dict = {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}
dict['day1']='Monday'
dict['day2']='Tuesday'
print(dict)

出力

上記のコードを実行すると、次のような結果が得られます。

{'day1': 'Monday', 'day2': 'Tuesday', 'day3': 'Wed'}

辞書の要素の削除

辞書から特定の要素を削除するには、delキーワードを使用します。delは辞書そのものを完全に削除する際にも使えます。また、clear()メソッドを使えば、辞書を空の状態にすることができます。

dict = {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}
print(dict)
del dict['day3']
print(dict)
dict.clear()
print(dict)

出力

上記のコードを実行すると、次のような結果が得られます。

{'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}
{'day1': 'Mon', 'day2': 'Tue'}
{}

補足:変数名に「dict」を使うのは避けよう

本記事のサンプルコードでは、説明をシンプルにするために変数名に「dict」を使用していますが、実際の開発では推奨されません。「dict」はPythonの組み込み型の名前であり、同じ名前の変数を定義すると、組み込みのdict()関数などを上書きしてしまい、予期しないエラーの原因になります。実務では「my_dict」や「days」など、内容がわかりやすい別の変数名を使うようにしましょう。

  1. AndroidのTextInputLayoutの実装方法を徹底解説

    Android TextInputLayoutとは実装方法に入る前に、まずAndroidにおけるTextInputLayoutについて簡単に説明します。TextInputLayoutはLinearLayoutを継承したウィジェットで、EditText(入力フィールド)のラッパーとして機能します。最大の特徴は、ユーザーがテキストを入力し始めると、ヒント(hint)がアニメーションしながらフローティングラベルとして上部に移動する点です。また、エラーメッセージの表示やカウンター表示など、入力フォームに必要な機能を簡単に実現できる便利なコンポーネントです。本記事では、実際のコード例を通じて、Andro

  2. 【Android】RecyclerViewで無限スクロール(無限リスト)を実装する方法を徹底解説

    はじめに 本記事では、AndroidアプリでRecyclerViewを使って無限リスト(エンドレススクロール)を実装する方法を、サンプルコード付きでステップごとに解説します。リストの最下部までスクロールすると自動的に次のデータが読み込まれるこの仕組みは、SNSやニュース系アプリなどで広く採用されている定番のUIパターンです。 今回実装する主な要素は以下のとおりです。 スクロール位置の検出による追加データ読み込みのトリガー処理 読み込み中に表示するプログレスバー(LoadingViewHolder) 複数のViewTypeを持つRecyclerView.Adapterの実装 手順1:プロジ