Python-辞書
辞書では、各キーはコロン(:)で値から区切られ、項目はコンマで区切られ、全体が中括弧で囲まれています。アイテムのない空の辞書は、次のように2つの中括弧で記述されます:{}。
キーは辞書内で一意ですが、値は一意でない場合があります。ディクショナリの値は任意のタイプにすることができますが、キーは文字列、数値、タプルなどの不変のデータ型である必要があります。
辞書の値へのアクセス
辞書要素にアクセスするには、キーと一緒に使い慣れた角括弧を使用して、その値を取得できます。以下は簡単な例です-
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']
上記のコードを実行すると、次の結果が得られます。
dict['Name']: Zara
dict['Age']: 7
ディクショナリの一部ではないキーを使用してデータ項目にアクセスしようとすると、次のエラーが発生します。
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Alice']: ", dict['Alice']
上記のコードを実行すると、次の結果が得られます。
dict['Alice']:
Traceback (most recent call last):
File "test.py", line 4, in <module>
print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'
辞書の更新
以下の簡単な例に示すように、新しいエントリまたはキーと値のペアを追加するか、既存のエントリを変更するか、既存のエントリを削除することで、辞書を更新できます。
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']
上記のコードを実行すると、次の結果が得られます。
dict['Age']: 8
dict['School']: DPS School
辞書要素を削除する
個々の辞書要素を削除するか、辞書の内容全体をクリアすることができます。1回の操作で辞書全体を削除することもできます。
辞書全体を明示的に削除するには、 delステートメント。以下は簡単な例です-
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name']; # remove entry with key 'Name'
dict.clear(); # remove all entries in dict
del dict ; # delete entire dictionary
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']
これにより、次の結果が得られます。後に例外が発生することに注意してくださいdel dict 辞書はもう存在しません-
dict['Age']:
Traceback (most recent call last):
File "test.py", line 8, in <module>
print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable
Note − del()メソッドについては、次のセクションで説明します。
辞書キーのプロパティ
ディクショナリ値に制限はありません。それらは、標準オブジェクトまたはユーザー定義オブジェクトのいずれかの任意のPythonオブジェクトにすることができます。ただし、同じことはキーには当てはまりません。
辞書キーについて覚えておくべき2つの重要なポイントがあります-
(a)キーごとに複数のエントリを使用することはできません。つまり、重複するキーは許可されません。割り当て中に重複キーが検出されると、最後の割り当てが優先されます。例-
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print "dict['Name']: ", dict['Name']
上記のコードを実行すると、次の結果が得られます。
dict['Name']: Manni
(b)キーは不変でなければなりません。つまり、文字列、数字、またはタプルを辞書キーとして使用できますが、['key']のようなものは許可されていません。以下は簡単な例です-
#!/usr/bin/python
dict = {['Name']: 'Zara', 'Age': 7}
print "dict['Name']: ", dict['Name']
上記のコードを実行すると、次の結果が得られます。
Traceback (most recent call last):
File "test.py", line 3, in <module>
dict = {['Name']: 'Zara', 'Age': 7};
TypeError: list objects are unhashable