1

可変オブジェクトを辞書に入れることが危険である理由を理解しています。ただし、すべてのリスト/セットをタプル/フリーズセットに変換するにはコストがかかります。また、多くのタイプでは、簡単に利用できる不変のバージョンはまったくありません。そのため、問題のオブジェクトが変更されないように適切な予防策を講じて、可変オブジェクトを直接ハッシュする価値がある場合があります。

可変オブジェクト用の非常に複雑なカスタムハッシュ関数の実装を開始する前にpickle.dumps、パフォーマンスや衝突などの点で、ハッシュ関数として使用することに不利な点があるかどうかを確認したいと思いました。

4

1 に答える 1

7

pickle からの出力は、dict および set order が非決定論的であるのと同様の理由で、標準的であることが保証されていません。ハッシュに pickle または pprint または repr を使用しないでください。

于 2012-10-05T04:13:03.000 に答える