hash() オブジェクトのハッシュ値

最終更新:2026-09-22

hash() オブジェクトのハッシュ値

hash() はオブジェクトの整数ハッシュ値(ハッシュ可能オブジェクト)を返す。同一オブジェクト(a is b)は必ず同じハッシュを持つ。

カテゴリ組み込み関数
種類組み込み関数
Python バージョンall

📝 構文

hash(object)

⚙️ 引数

object 必須The object to hash; it must be hashable.

戻り値:The integer hash of the object; equal objects always hash equal.

💥 例外

▶ 例

下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:

実行結果:

529344067295497451
ℹ️ 説明 不変コンテナは通常ハッシュ可能。list / set / dict はハッシュ不可能。
さらに多くのケースは近日公開予定です。

❓ よくある質問

Qなぜ hash([1, 2]) は TypeError になるのですか?
Alist は可変で内容を変更できるため、ハッシュの安定性を保証できず、ハッシュ化不可です。dict や set も同様にハッシュ化不可です。
Qどのオブジェクトがハッシュ化可能ですか?
A不変型は通常ハッシュ化可能です:int、float、str、bytes、tuple、frozenset、None など。tuple でも中に list を含む場合はハッシュ化不可です。
Q等しいオブジェクトのハッシュは必ず同じですか?
A一方向には必ず同じです:a == b なら hash(a) == hash(b)。ただし逆は保証されません。異なるオブジェクトでもハッシュが衝突する可能性があります(ハッシュが同じ=等しいとは限らない)。
Q毎回プログラムを実行しても hash('abc') の結果は同じですか?
A同じとは限りません。文字列ハッシュは既定でランダマイズ(PYTHONHASHSEED)されるため、プロセス間で安定しません。ハッシュ値を永続化やプロセス間の受け渡しに使わないでください。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%