Pythonセットの要素と同等に比較されるオブジェクトがあるが、同じオブジェクトではない場合、セット内のオブジェクトへの参照を取得するための合理的な方法はありますか?ユースケースは、セットを使用して重複データを識別および共有することです。
例(Python 2.7):
>>> a = "This is a string"
>>> b = "This is a string"
>>> a is b
False
>>> a == b
True
>>> s = set((a,))
>>> b in s
True
とのa
使用に関するリファレンスを取得する方法は?私は1つの方法を考えることができますが、それが実装に依存していないかどうかはわかりません。編集:これは、sに複数の要素がある場合は機能しません。交差点は非常に自然に実装されていますb
s
a
b
[x for x in smaller_set if x in larger_set]
>>> for x in set((b,)).intersection(s): c = x
...
>>> c is a
True
おそらく、適切な回避策は、セットではなく、各キーをそれ自体にマップするdictを使用することです。