辞書は別の変数コンテナモデルであり、任意のタイプのオブジェクトを格納できます。
辞書の各キー値key => valueペアはコロン(:)で区切られ、各ペアはコンマ(,)で区切られます。ディクショナリ全体は中括弧{}で囲まれ、形式は次のとおりです。
d = {key1 : value1, key2 : value2, key3 : value3 }
キーは唯一でりますが、値は唯一である必要はありません。
値は任意のデータ型をとることができますが、キーは文字列や数値などの不変である必要があります。
簡単な辞書の実例は以下になります。
dict = {'name': 'Florian', 'likes': 123, 'url': 'www.ceodata.com'}
次のような辞書を作成することもできます。
dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }
目次
辞書の値にアクセスする
次の例のように、対応するキーを角かっこで囲みます。
実例
#!/usr/bin/python3
dict = {'Name': 'Florian', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
上記実例の出力結果は以下になります。
dict['Name']: Florian
dict['Age']: 7
辞書にないキーを使用してデータにアクセスすると、次のようにエラーが出力されます。
実例
#!/usr/bin/python3
dict = {'Name': 'Florian', 'Age': 7, 'Class': 'First'}
print ("dict['Alice']: ", dict['Alice'])
上記実例の出力結果は以下になります。
Traceback (most recent call last):
File "test.py", line 5, in <module>
print ("dict['Alice']: ", dict['Alice'])
KeyError: 'Alice'
辞書を変更する
辞書に新しいコンテンツを追加する方法は、次のように、新しいキーと値のペアを追加し、既存のキーと値のペアを変更または削除することです。
実例
#!/usr/bin/python3
dict = {'Name': 'Florian', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8 # 年齢を更新
dict['School'] = "初心者教程" # 情報を追加
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
上記実例の出力結果は以下になります。
dict['Age']: 8
dict['School']: 初心者教程
辞書要素を削除する。
単一の要素を削除したり辞書をクリアしたりすることもできます。辞書をクリアするのに必要な一つの操作だけです。
次の例のように、delコマンドを使用して辞書を削除します。
実例
#!/usr/bin/python3
dict = {'Name': 'Florian', 'Age': 7, 'Class': 'First'}
del dict['Name'] # キー 'Name'を削除する
dict.clear() # 辞書をクリアする
del dict # 辞書を削除する
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
ただし、こうすればエラーが発生します。del操作を実行すると辞書が存在しなくなるためです。
Traceback (most recent call last):
File "test.py", line 9, in <module>
print ("dict['Age']: ", dict['Age'])
TypeError: 'type' object is not subscriptable
注意:del()メソッドについても後でも説明します。
辞書キーの特徴
辞書値は、標準オブジェクトまたはユーザー定義オブジェクトのいずれかのPythonオブジェクトにすることができますが、辞書キーはできません。
覚えておくべき2つの重要なポイントが以下になります。
1、同じキーを2回表示することはできません。 作成中に同じキーが2回割り当てられた場合、次の例のように、後者の値が記憶されます。
実例
#!/usr/bin/python3
dict = {'Name': 'Florian', 'Age': 7, 'Name': '初心者'}
print ("dict['Name']: ", dict['Name'])
上記実例の出力結果は以下になります。
dict['Name']: 初心者
2、キーは変更できません。次の例のように、数値、文字列、またはタプルで使用できますが、リストは使用できません。
実例
#!/usr/bin/python3
dict = {['Name']: 'Florian', 'Age': 7}
print ("dict['Name']: ", dict['Name'])
上記実例の出力結果は以下になります。
Traceback (most recent call last):
File "test.py", line 3, in <module>
dict = {['Name']: 'Florian', 'Age': 7}
TypeError: unhashable type: 'list'
辞書にある組み込まれた関数とメソッド
Python辞書には、次の組み込み関数が含まれています。
番号 | 関数及び説明 | 実例 |
1 | len(dict) 辞書要素の数、つまりキーの総数を数える。 | >>> dict = {‘Name’: ‘Florian’, ‘Age’: 7, ‘Class’: ‘First’} >>>len(dict) 3 |
2 | str(dict) 辞書を出力する。印刷可能な文字列として表される。 | >>> dict = {‘Name’: ‘Florian’, ‘Age’: 7, ‘Class’: ‘First’} >>> str(dict) “{‘Name’: ‘Florian’, ‘Class’: ‘First’, ‘Age’: 7}” |
3 | type(variable) 入力変数のタイプを返す。変数が辞書の場合は辞書タイプを返す。 | >>>dict = {‘Name’: ‘Runoob’, ‘Age’: 7, ‘Class’: ‘First’} >>>type(dict) <class ‘dict’> |
Python辞書には、次の組み込みメソッドが含まれています。
番号 | 関数及び説明 |
1 | radiansdict.clear() 辞書のすべての要素を削除する。 |
2 | radiansdict.copy() 辞書の浅いコピーを返す。 |
3 | radiansdict.fromkeys() 新しい辞書を作成し、シーケンスseqの要素を辞書のキーとして使用する。valは、辞書のすべてのキーに対応する初期値である。 |
4 | radiansdict.get(key、default = None) 指定されたキーの値を返す。キーが辞書にない場合は、デフォルトで設定されたデフォルト値を返す。 |
5 | key in dict キーが辞書dictにある場合はtrueを返し、そうでない場合はfalseを返す。 |
6 | radiansdict.items() 検索可能な(キー、値)タプル配列をリストとして返す。 |
7 | radiansdict.keys() list()を使用してリストに変換できるイテレータを返す。 |
8 | radiansdict.setdefault(key、default = None) get()に似ているが、キーが辞書に存在しない場合、キーが追加され、値がデフォルトに設定される。 |
9 | radiansdict.update(dict2) 辞書dict2のキーと値のペアをdictに更新する。 |
10 | radiansdict.values() list()を使用してリストに変換できるイテレータを返す。 |
11 | pop(key [、default]) 辞書の指定されたキーに対応する値を削除する。戻り値は削除された値である。 キー値を指定する必要がある。 それ以外の場合は、デフォルト値が返される。 |
12 | popitem() 辞書内の最後のキーのペアと値をランダムに返し、削除する。 |
コメントを残す