Python3 辞書
辞書はもう1つの可変コンテナモデルであり、任意の型のオブジェクトを格納できます。
辞書の各キーと値key=>valueのペアはコロンで:区切り、各ペアはカンマ(,)で区切り、辞書全体は中括弧{}で囲みます。形式は次のとおりです。
d = {key1 : value1, key2 : value2, key3 : value3 }
注意:dictPythonのキーワードおよび組み込み関数として、変数名をdict。

キーは一意である必要がありますが、値はその必要はありません。
値は任意のデータ型を取ることができますが、キーは文字列や数値などの不変型である必要があります。
簡単な辞書の実例:
tinydict = {'name': 'サンプル', 'likes': 123, 'url': 'www.example.com'}

このように辞書を作成することもできます:
tinydict1 = { 'abc': 456 }
tinydict2 = { 'abc': 123, 98.6: 37 }
空の辞書を作成
中括弧を使用{ }空の辞書を作成:
実例
emptyDict = {}
# 辞書を出力
print(emptyDict)
# 辞書の数を確認
print("Length:", len(emptyDict))
# 型を確認
print(type(emptyDict))
上記の実例の出力結果:
{}
Length: 0
<class 'dict'>
組み込み関数を使用dict()辞書を作成:
実例
# 辞書を出力
print(emptyDict)
# 辞書の数を確認
print("Length:",len(emptyDict))
# 型を確認
print(type(emptyDict))
上記の実例の出力結果:
{}
Length: 0
<class 'dict'>
辞書の値にアクセス
対応するキーを角括弧に入れます。次の実例のとおりです。
実例
上記の実例の出力結果:
tinydict['Name']: サンプル tinydict['Age']: 7
辞書にないキーを使用してデータにアクセスすると、次のようなエラーが出力されます:
実例
上記の実例の出力結果:
Traceback (most recent call last):
File "test.py", line 5, in <module>
print ("tinydict['Alice']: ", tinydict['Alice'])
KeyError: 'Alice'
辞書の修正
辞書に新しい内容を追加する方法は、新しいキー/値ペアを追加することです。既存のキー/値ペアの変更や削除は次の実例のとおりです。
実例
tinydict['Age']: 8 tinydict['School']: サンプル
辞書の要素を削除
単一の要素を削除することも、辞書を空にすることもできます。空にするには1つの操作だけで済みます。
辞書を明示的に削除するには del コマンドを使用します。次の実例のとおりです。
実例
ただし、これは例外を引き起こします。del 操作を実行すると辞書が存在しなくなるためです:
Traceback (most recent call last):
File "/サンプル-test/test.py", line 9, in <module>
print ("tinydict['Age']: ", tinydict['Age'])
NameError: name 'tinydict' is not defined
注:del() メソッドについては後で説明します。
辞書のキーの特性
辞書の値は任意の Python オブジェクトにすることができ、標準のオブジェクトでもユーザー定義のオブジェクトでも構いませんが、キーはそうではありません。
覚えておくべき重要な点が2つあります:
1)同じキーが2回出現することはできません。作成時に同じキーが2回代入された場合、後者の値が保持されます。次の実例のとおりです:
実例
上記の実例の出力結果:
tinydict['Name']: 小サンプル
2)キーは不変でなければなりません。そのため、数字、文字列、タプルをキーとして使用できますが、リストは使用できません。次の実例のとおりです:
実例
上記の実例の出力結果:
Traceback (most recent call last):
File "test.py", line 3, in <module>
tinydict = {['Name']: 'サンプル', 'Age': 7}
TypeError: unhashable type: 'list'
辞書の組み込み関数とメソッド
Pythonの辞書には以下の組み込み関数が含まれています:
| 番号 | 関数と説明 | 実例 |
|---|---|---|
| 1 | len(dict) 辞書の要素数、すなわちキーの総数を計算します。 |
>>> tinydict = {'Name': 'サンプル', 'Age': 7, 'Class': 'First'}
>>> len(tinydict)
3
|
| 2 | str(dict) 辞書を出力し、印刷可能な文字列表現を返します。 |
>>> tinydict = {'Name': 'サンプル', 'Age': 7, 'Class': 'First'}
>>> str(tinydict)
"{'Name': 'サンプル', 'Class': 'First', 'Age': 7}"
|
| 3 | type(variable) 入力された変数の型を返します。変数が辞書の場合は辞書型を返します。 |
>>> tinydict = {'Name': 'サンプル', 'Age': 7, 'Class': 'First'}
>>> type(tinydict)
<class 'dict'>
|
Pythonの辞書には以下の組み込みメソッドが含まれています:
| 番号 | 関数と説明 |
|---|---|
| 1 | dict.clear() 辞書内のすべての要素を削除します |
| 2 | dict.copy() 辞書の浅いコピーを返します |
| 3 | dict.fromkeys() 新しい辞書を作成し、シーケンス seq の要素を辞書のキーとし、val を辞書のすべてのキーに対応する初期値とします |
| 4 | dict.get(key, default=None) 指定したキーの値を返します。キーが辞書にない場合は default で設定されたデフォルト値を返します |
| 5 | key in dict キーが辞書 dict にあれば true を返し、なければ false を返します |
| 6 | dict.items() リストとしてビューオブジェクトを返します |
| 7 | dict.keys() ビューオブジェクトを返します |
| 8 | dict.setdefault(key, default=None) get() と似ていますが、キーが辞書に存在しない場合は、キーを追加して値を default に設定します |
| 9 | dict.update(dict2) 辞書 dict2 のキー/値ペアを dict に更新します |
| 10 | dict.values() ビューオブジェクトを返します |
| 11 | dict.pop(key[,default]) 辞書の key(キー)に対応する値を削除し、削除された値を返します。 |
| 12 | dict.popitem() 辞書の最後のキーと値のペアを返して削除します。 |