Python hash() 関数

Python3 組み込み関数


hash()オブジェクトのハッシュ値を返すためのPythonの組み込み関数です。

ハッシュ値はオブジェクトを高速に比較するための整数です。辞書のキーと集合の要素は、すべてハッシュ可能(hashable)であることが要求されます。不変オブジェクトは通常ハッシュ可能です。

単語の意味: hash 意为"哈希",返回对象的哈希值。


基本構文とパラメータ

構文形式

hash(object)

パラメータの説明

  • パラメータ object:
    • 型: 任意のオブジェクト
    • 説明: ハッシュ値を計算するオブジェクト。

関数の説明

  • 戻り値: オブジェクトのハッシュ値(整数)を返します。
  • 要件: オブジェクトはハッシュ可能でなければなりません(つまり __hash__ メソッドを実装している必要があります)。

例

例1:基本的な使い方

例

# 数値
print(hash(1))        # 出力: 1
print(hash(3.14))     # 出力: 314159
print(hash(-100))     # 出力: -100

# 文字列
print(hash("hello"))   # 出力: ハッシュ値
print(hash("world"))   # 出力: 別のハッシュ値

# タプル(ハッシュ可能)
print(hash((1, 2, 3)))  # 出力: ハッシュ値

# リスト(ハッシュ不可能)
# print(hash([1, 2, 3])) # TypeError がスローされます

実行結果の予想:

同じ値のオブジェクトは常に同じハッシュ値を持ちます。

例2:辞書とセットでの使用

例

# 辞書のキーはハッシュ可能でなければなりません
d = {"name": "Tom", "age": 20}
print(d["name"])  # 出力: Tom

# 集合の要素はハッシュ可能でなければなりません
s = {1, 2, 3, "hello"}
print(3 in s)     # 出力: True

# カスタムクラスのハッシュ
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __hash__(self):
        return hash((self.x, self.y))

p = Point(1, 2)
print(hash(p))  # 出力: ハッシュ値

実行結果:

ハッシュ値により、オブジェクトは辞書のキーや集合の要素として使用できます。

hash()これは Python におけるハッシュ関連操作の基礎です。


Python3 組み込み関数


その他の拡張