プログラミング

pythonのhash関数でハッシュ値を取得する(初心者のPython入門)

2019年7月2日

Pythonでハッシュ値(整数)を取得するhash関数の使い方です。(Pythonの標準関数です。)

Pythonの標準関数一覧はこちらです。

ハッシュ値とは

ハッシュ値とは、データに対応するユニークな値を計算により出力したものです。
同じデータ(たとえば1と1.0、たとえば"abc"と"abc")なら、同じハッシュ値が得られます。
辞書を作る場合、単語に対応する値が一意に決まれば、辞書を高速に検索することが出来ます。

ハッシュ値は高速化のためのテクニックとして使われます。

hash関数の使い方

hash(object)

オブジェクトのハッシュ値を整数で返す。

# -*- coding: utf-8 -*-

#ハッシュ値を表示する
print(hash("abc"))
print(hash("def"))
print(hash(123))
print(hash(123.0))
print(hash(-123))
print(hash("abc"))

実行結果は以下のようになります。

-2826654207973975811
4047726712106589321
123
123
-123
-2826654207973975811

最初と最後の"abc"のハッシュ値は同じ値となります。

123と123.0のハッシュ値も同じ値となり、123と-123は異なるハッシュ値になります。

たくさんの文字や数値を辞書のように保存する場合を考えます。10万個のデータを蓄積した後に、新たな単語を登録するケースでは、新たな単語がこれまでの辞書に格納されているかどうかを確認する必要があります。単純に10万個のデータに今回のデータが含まれるかどうかを確認するためには、10万回の比較が必要です。そこで10万個のデータのハッシュ値あらかじめ計算しておき、値の大きさでソートして格納しておけば、登録しようとしているデータがすでに辞書にあるかどうかの確認は、ハッシュ値の比較により短時間で行えます。

使いようによっては、ハッシュ値は便利に使える気がしますね。

-プログラミング
-,

© 2020 小さなことをやってみるブログ