Python 辞書(Dictionary)
辞書はもう一つの可変コンテナモデルであり、任意の型のオブジェクトを格納できます。
辞書の各キーと値はkey:valueコロンで:区切られ、各キーと値のペアはカンマで,区切られ、辞書全体は波括弧で囲みます{}中、形式は以下の通りです:
注意:dictPython のキーワードや組み込み関数として、変数名に使用することはお勧めしません。dict。
キーは通常一意です。繰り返した場合、最後のキーと値のペアが前のものを置き換えます。値は一意である必要はありません。
>>> tinydict['b']
'3'
>>> tinydict
{'a': 1, 'b': '3'}
値は任意のデータ型を取ることができますが、キーは文字列、数値、タプルなどの不変である必要があります。
簡単な辞書の例:
このように辞書を作成することもできます:
辞書の値にアクセスする
対応するキーをおなじみの角括弧に入れます。以下の例のとおりです:
例
上記の例の出力結果:
tinydict['Name']: Zara tinydict['Age']: 7
辞書にないキーでデータにアクセスすると、次のようなエラーが出力されます:
例
上記の例の出力結果:
tinydict['Alice']:
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使用後は辞書が存在しなくなるため、例外が発生します:
tinydict['Age']:
Traceback (most recent call last):
File "test.py", line 10, in <module>
print "tinydict['Age']: ", tinydict['Age']
NameError: name 'tinydict' is not defined
注:del() メソッドについては後で説明します。
辞書のキーの特性
辞書の値は制限なく任意のPythonオブジェクトを取ることができます。標準のオブジェクトでもユーザー定義のオブジェクトでも構いませんが、キーはそうはいきません。
覚えておくべき重要な点が2つあります:
1)同じキーが2回出現することはできません。作成時に同じキーが2回代入された場合、後者の値が記憶されます。以下の例のとおりです:
例
上記の例の出力結果:
tinydict['Name']: Manni
2)キーは不変でなければならないため、数値、文字列、タプルを使用できますが、リストは使用できません。以下の例のとおりです:
例
上記の例の出力結果:
Traceback (most recent call last):
File "test.py", line 3, in <module>
tinydict = {['Name']: 'Zara', 'Age': 7}
TypeError: unhashable type: 'list'
辞書の組み込み関数&メソッド
Pythonの辞書には次の組み込み関数が含まれています:
| 番号 | 関数と説明 |
|---|---|
| 1 | cmp(dict1, dict2) 2つの辞書要素を比較します。 |
| 2 | len(dict) 辞書の要素数、すなわちキーの総数を計算します。 |
| 3 | str(dict) 辞書の印字可能な文字列表現を出力します。 |
| 4 | type(variable) 入力された変数の型を返します。変数が辞書の場合は辞書型を返します。 |
Pythonの辞書には次の組み込みメソッドが含まれています:
| 番号 | 関数と説明 |
|---|---|
| 1 | dict.clear() 辞書内のすべての要素を削除します |
| 2 | dict.copy() 辞書の浅いコピーを返します |
| 3 | dict.fromkeys(seq[, val]) 新しい辞書を作成し、シーケンス seq の要素を辞書のキーとし、val を辞書のすべてのキーに対応する初期値とします |
| 4 | dict.get(key, default=None) 指定したキーの値を返します。キーが辞書にない場合はdefault値を返します |
| 5 | dict.has_key(key) キーが辞書dictに存在すればtrueを返し、それ以外はfalseを返します。Python3 ではサポートされていません。 |
| 6 | dict.items() リストとして反復可能な(キー, 値) タプルの配列を返します。 |
| 7 | dict.keys() リストとして辞書のすべてのキーを返します。 |
| 8 | dict.setdefault(key, default=None) get() と似ていますが、キーが辞書に存在しない場合は、キーを追加して値をdefaultに設定します |
| 9 | dict.update(dict2) 辞書dict2のキー/値のペアをdictに更新します |
| 10 | dict.values() リストとして辞書のすべての値を返します。 |
| 11 | pop(key[,default]) 辞書の指定されたキー key に対応する値を削除し、戻り値は削除された値です。key値は必ず指定する必要があります。そうでない場合はdefault値を返します。 |
| 12 | popitem() 辞書の最後のキーと値のペアを返して削除します。 |