Python-data-structure-python-hash-table

提供:Dev Guides
移動先:案内検索

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']

これにより、次の結果が生成されます。 デル辞書辞書がもはや存在しないため、例外が発生することに注意してください-

dict['Age']:
Traceback (most recent call last):
   File "test.py", line 8, in
      print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable