Python-ハッシュテーブル
ハッシュテーブルは、データ要素のアドレスまたはインデックス値がハッシュ関数から生成されるデータ構造の一種です。これにより、インデックス値がデータ値のキーとして動作するため、データへのアクセスが高速になります。つまり、ハッシュテーブルにはキーと値のペアが格納されますが、キーはハッシュ関数によって生成されます。
したがって、キー値自体がデータを格納する配列のインデックスになるため、データ要素の検索および挿入機能ははるかに高速になります。
Pythonでは、Dictionaryデータ型はハッシュテーブルの実装を表します。辞書のキーは、次の要件を満たしています。
- 辞書のキーはハッシュ可能です。つまり、ハッシュ関数に提供された一意の値ごとに一意の結果を生成するハッシュ関数によって生成されます。
- 辞書内のデータ要素の順序は固定されていません。
したがって、以下のようにディクショナリデータ型を使用してハッシュテーブルの実装を確認します。
辞書の値へのアクセス
辞書要素にアクセスするには、キーと一緒に使い慣れた角括弧を使用して、その値を取得できます。
# Declare a dictionary
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
# Accessing the dictionary with its key
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']
上記のコードを実行すると、次の結果が得られます。
dict['Name']: Zara
dict['Age']: 7
辞書の更新
以下の簡単な例に示すように、新しいエントリまたはキーと値のペアを追加するか、既存のエントリを変更するか、既存のエントリを削除することで、辞書を更新できます。
# Declare a dictionary
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']
上記のコードを実行すると、次の結果が得られます。
When the above code is executed, it produces the following result −
dict['Age']: 8
dict['School']: DPS School
辞書要素を削除する
個々の辞書要素を削除するか、辞書の内容全体をクリアすることができます。1回の操作で辞書全体を削除することもできます。辞書全体を明示的に削除するには、delステートメントを使用するだけです。−
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
print "dict['Age']: ", dict['Age']; TypeError: 'type' object is unsubscriptable