Pythonのアルゴリズム - ハッシュテーブル

最初の定義
ハッシュテーブル(ハッシュテーブルには、また、ハッシュ・テーブルと呼ばれる)、キーコード値に基づいて(キーと値)を直接データ構造にアクセスします。つまり、キー値によってレコードにアクセスするには、テーブルに検索をスピードアップするために位置をマッピングされます。ストレージアレイを記録し、ハッシュ関数と呼ばれるこのマッピング関数は、ハッシュテーブルと呼ばれます。

キーワードテーブルに記録されたアドレスを含む関数を代入した後に得られた場合はM指定されたテーブルは、関数f(キー)が存在し、任意のキー値キーのため、Mは、ハッシュテーブル(ハッシュ)と呼ばれていますテーブルは、関数f(キー)は、ハッシュ(ハッシュ)関数です。

個々の理解:リストは、ハッシュテーブルのインデックスは異なる整数[0、∞)[0、\ inftyの)[0、∞)インデックスとして記憶され、リストは異なるキー、キー値に直接アクセス可能な値であります値。

(キー、値)を挿入するキーと値のペアを挿入
値GET(キー)を取得し
た値を削除します(キー)

ハッシュテーブルアプリケーション
①辞書の収集と
辞書とハッシュテーブルのセットに実装されている
辞書を格納するハッシュテーブルを使用して、辞書インデックスにマッピングされて構築されたハッシュ関数によって
ハッシュ衝突が発生した場合、法律やジッパーにより、解決するための方法に取り組む開発
②MD5アルゴリズム(SHA2アルゴリズム)
MD5は、かつて一般的に暗号化に使用された
ファイルのダウンロードを確認するために使用するMD5完了する
クラウド・ストレージ・サービス・プロバイダは、彼がクラウドサーバーにされているかどうかを判断するために使用し、アップロードを再していません

第二に、競合は
異なるキーワードに同じハッシュアドレス、K1≠K2、そしてf(K1)= F(K2かもしれません )、 コンフリクト(:衝突英語)として知られる現象を。キーワードは同義語として知られているハッシュ関数の同じ関数値を持っています。「様」の記録として、ハッシュ関数f(k)の方法によれば、上述した紛争は、キーワードの有限集合連続アドレスセット(間隔)、そして濃縮したキーワードに対応するためにマッピングされるようにテーブルの記憶場所は、この表には、このマッピングプロセスは、ハッシュまたはハッシュテーブル、ハッシュアドレスと呼ばれる、得られた保管場所と呼ばれるなって、ハッシュ・テーブルと呼ぶことにします。

三、Pythonアプリケーション
3.1辞書
Pythonの辞書では、キーと値を対応させる、ハッシュテーブルの原則を適用します。

初期辞書:

a = dict()
b = {}
c = {'a': 1, 'b': 2, 'b': '3'}  # 冒号左边是key,右边是value,由于存在重复的b,最后剩下右边的'b':3

辞書値にアクセスします。

print "c['a']: ", c['a']

辞書の変更

c['a'] = 0 # 将原来映射的1变为0
c['c'] = 4 # 添加新的键值对

辞書の要素を削除します。

del c['a'] #删除key为a的键值对
c.clear #清除字典c中所有的键值对
del c #直接删除字典c

辞書組み込み関数やメソッド

アクションまたは関数の方法
CMP(dict1、dict2)は、2つの辞書の要素と比較
lenを(辞書)を辞書長
STR(辞書)辞書出力の印刷可能な文字列表現
型タイプ(可変)出力変数の
すべての辞書を削除するdict.clear()素子
dict.copy()は辞書のコピーを返す
([、ヴァル]配列)dict.fromkeys新しい辞書を作成し、配列要素がvalが辞書の初期値へのすべてのキーに対応する、配列辞書キーを行う
dict.get(キー値が辞書を返すのデフォルト値ではない場合、デフォルト=なし)、指定されたキーの値を返さない
dict.has_key)(キーのキーが辞書辞書である場合はtrueを返します。そうでない場合はfalseを返し、
)(dict.itemsを(キーリストトラバーサルを返します。 、値)タプル配列
dict.keys()辞書のすべてのキーのリストを返す
dict.setdefault(キー、デフォルト=なしの)および(GET)同様に、キーが辞書に存在しない、キーが追加される場合値はデフォルトに設定されて
dict.update(dict2)の中に辞書を更新するためにキー/値のペアの辞書をdict2
辞書内のすべての値のリストを返すために)(dict.values
キーキー所与の辞書を削除するPOP(キー[デフォルト])値に対応し、戻り値が削除されます。キーの値を指定する必要があります。そうでない場合は、デフォルト値を返します。
popitem()はランダムに返し、辞書のキーと値のペアを削除します。

おすすめ

転載: blog.csdn.net/xili2532/article/details/91412097