リスト配列は要素をインデックス番号でアクセスします。ディクショナリーは、キーワードとデータを関連付けて保存します。辞書からキーワードで目的のものを探し出すように、キーワードで検索してデータを取り出したり、格納したりする配列をディクショナリーと呼びます。リスト配列は整数値で要素にアクセスしますが、ディクショナリーは、文字列で要素にアクセスします。
ここでは、ディクショナリーを操作するいくつかの方法を見てみましょう。
要素が空のディクショナリーは次のように用意します。
空要素のディクショナリー作成の書式 |
---|
ディクショナリー名 = {} |
例:
products = {}
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | dicttest1.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
{}
○ 解説
2行目で、{}を使ってリスト配列を指定しています。5行目で、リスト配列の中身を表示しています。今回は要素が空なので、「{}」と表示されます。
ディクショナリーは次のように初期化します。
ディクショナリー初期化の書式 |
---|
ディクショナリー名 = {'キー1' : 値1, 'キー2' : 値2, …} |
例:
products = {'productname' : 'ばなな', 'price' : 100}
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | dicttest2.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
{'productname': 'ばなな', 'price': 100}
○ 解説
2行目で、ディクショナリーを初期化しています。次の図のようにキー「productname」に「ばなな」が、キー「price」に「100」が格納されたディクショナリーが用意されます。
ディクショナリーの要素は次のように指定してデータを代入したり、参照したりすることができます。
ディクショナリー代入の書式 |
---|
ディクショナリー名[キー] = 式 |
例:
products['price'] = 150
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | dicttest3.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
代入前のディクショナリー{'productname': 'ばなな', 'price': 100}
代入後のディクショナリー:{'productname': 'ばなな', 'price': 150, 'quantity': 3}
○ 解説
8行目で、productsディクショナリーのキー「price」の要素に「150」を代入しています。9行目のように、products [‘quantity’]など、用意されていない他のキーの要素に代入すると、その要素が作成されされます。また、存在しないキーの要素を参照しようとすると、エラーになります。
ディクショナリーの要素数がいくつあるかを調べることができます。
ディクショナリーの要素数取得の書式 |
---|
len(ディクショナリー名) |
例:
len(products)
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | dictlengthtest.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
要素数:2
{'productname': 'ばなな', 'price': 100}
○ 解説
5行目で、ディクショナリーの要素数を表示しています。今回は、「2」と表示されます。
ディクショナリーに別のディクショナリーの要素を結合するには、「update」メソッドを使います。
ディクショナリー結合の書式 |
---|
ディクショナリー名.update(ディクショナリー名) |
例:
products.update(producing)
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | dictupdatetest.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
結合前のディクショナリー:{'productname': 'ばなな', 'price': 100}
結合後のディクショナリー:{'productname': 'めろん', 'price': 100, 'area': '愛知', 'date': '2020/06/16'}
○ 解説
2行目で、2個の要素を持つディクショナリーを用意しています。3行目で、3個の要素を持つリスト配列を用意しています。9行目で、productsディクショナリーとproducingディクショナリーを結合しています。その際、結合するディクショナリーに同じキーが存在する場合、結合するディクショナリーのキーのデータで更新されます。
ディクショナリーの要素を削除するには、「del」文を使います。
ディクショナリー要素削除の書式 |
---|
del ディクショナリー名[キー] |
例:
del products['price']
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | distdeletetest.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
削除前のディクショナリー{'productname': 'ばなな', 'price': 100}
削除後のディクショナリー{'productname': 'ばなな'}
○ 解説
8行目で、productsディクショナリーのpriceキーの要素を削除しています。結果としてpriceキーの要素が削除されます。
ディクショナリーの全要素を削除するには、「clear」メソッドを使います。
ディクショナリー全要素削除の書式 |
---|
ディクショナリー名.clear() |
例:
products.clear()
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | dictcleartest.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
全要素削除前のディクショナリー{'productname': 'ばなな', 'price': 100}
全要素削除後のディクショナリー{}
○ 解説
8行目で、clearメソッドを指定してproductsディクショナリーの全要素を削除しています。11行目で、ディクショナリーの全要素が削除されていることを確認できます。
ディクショナリーの指定した要素を取得して削除するには、「pop」メソッドを使います。
ディクショナリー要素取得後削除の書式 |
---|
ディクショナリー.pop(キー) |
例:
p = products.pop('price')
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | dictpoptest.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
削除前のディクショナリー{'productname': 'ばなな', 'price': 100}
取り出した要素:100
削除後のディクショナリー:{'productname': 'ばなな'}
○ 解説
8行目で、popメソッドを使って要素を取り出しています。今回はpriceキーの要素が取り出され、その要素はディクショナリーから削除されます。11行目では、取り出した要素を確認しています。「100」が表示されます。12行目では、削除後のディクショナリーを確認しています。「100」が取り除かれた状態のディクショナリーを確認することができます。
ディクショナリーから要素のキーと値を取得して削除するには、「popitem」メソッドを使います。どの要素化は指定できません。
ディクショナリーキー・値取得後削除の書式 |
---|
ディクショナリー名.popitem() |
例:
p = products.popitem()
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | dictpopitemtest.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
削除前のディクショナリー{'productname': 'ばなな', 'price': 100}
取り出した要素:('price', 100)
削除後のディクショナリー:{'productname': 'ばなな'}
○ 解説
8行目で、popitemメソッドを使って要素を取り出しています。今回はpriceキーの要素のキーと値のセットが取り出され、その要素はディクショナリーから削除されます。11行目では、取り出した要素を確認しています。「('price', 100)」が表示されます。12行目では、削除後のディクショナリーを確認しています。「100」が取り除かれた状態のディクショナリーを確認することができます。
popitemメソッドを呼び出すたびに、ディクショナリーから要素を取り出します。取り出す要素がない場合はエラーとなります。
ディクショナリーに存在するキーの一覧を取得するには、「keys」メソッドを使います。
ディクショナリーキー一覧取得の書式 |
---|
ディクショナリー名.keys() |
例:
keys = products.keys()
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | dictkeystest.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
キー一覧:dict_keys(['productname', 'price'])
○ 解説
5行目で、keysメソッドを使ってキー一覧を取得しています。結果として「dict_keys」オブジェクトが取得できます。このオブジェクトの中にキー一覧のデータがセットされています。繰り返し処理などを使ってデータを一つずつ取り出して活用します。
ディクショナリーの要素に格納されている値の一覧を取得するには、「values」メソッドを使います。
ディクショナリー値一覧取得の書式 |
---|
ディクショナリー名.values() |
例:
values = products.values()
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | dictvaluestest.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
値一覧:dict_values(['ばなな', 100])
○ 解説
5行目で、valuesメソッドを使って値一覧を取得しています。結果として「dict_values」オブジェクトが取得できます。このオブジェクトの中に値一覧のデータがセットされています。繰り返し処理などを使ってデータを一つずつ取り出して活用します。
ディクショナリーの要素に格納されているキーと値の一覧を取得するには、「items」メソッドを使います。
ディクショナリーキー・値一覧取得の書式 |
---|
ディクショナリー名.items() |
例:
items = products.items()
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | dictitemstest.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
データ一覧:dict_items([('productname', 'ばなな'), ('price', 100)])
○ 解説
5行目で、itemsメソッドを使ってキーと値の一覧を取得しています。結果として「dict_items」オブジェクトが取得できます。このオブジェクトの中にキーと値のペアのデータがセットされています。繰り返し処理などを使ってデータを一つずつ取り出して活用します。
ディクショナリーに指定したキーを持つ要素が存在するかどうかを調べるには、「in」演算子を使います。見つかった場合は「True」を、見つからなかった場合は「False」を返します。
ディクショナリーキー検索の書式 |
---|
キー名 in ディクショナリー名 |
例:
'productname' in products
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | dictsearchtest.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
productname ? True
quantity ? False
quantity ? True
○ 解説
5行目では、ディクショナリー内に「productname」キーが存在するかどうかを「in」演算子を指定して調べています。存在するので「True」が表示されます。6行目では、ディクショナリー内に「quantity」キーが存在するかどうかを調べています。存在しないので、「False」が表示されます。7行目では、ディクショナリー内に「quantity」キーが存在しないかどうかを「not in」演算子を指定して調べています。存在しないので「True」が表示されます。