私はキーとデータの両方を含むものを使用するケースがあります。 私は、このデータとデータのdictインデックスの効率的なエンコードを希望します。 だから、事はクラスで、辞書は、そのインスタンスの辞書の指標である:メモリ効率的なdicts - 値からアイテムのキーを派生させる
thing1, thing2 = d['thing1'], d['thing2']
この:
d = {}
class Thing:
def __init__(k,v): self.key=k; self.data=v; d[v]=self
今、私が示したように事が私のコードでは、単一のオブジェクトを周りにオブジェクトを渡したいですソリューションが機能します。私は物事をキーで索引付けすることができ、それぞれからキーを取り出すことができますが、この解決策では、dictとThingオブジェクトの両方にキーへのポインタが重複して格納されています。
私は値からキーにアクセスする方法を教えてくれる方法で、「dict」を実装することができました。したがって、多くのハッシュメソッドは、キーへの第2のポインタの格納を避けることができます。
Pythonディクテーションの実装でこのような柔軟性が得られますか? これが不可能であると主張する立場にいるなら、それを聞いてみたいと思います。どうも。
注意:キーとデータの両方を1つのポインタで扱うことを後でしたいと思います。これを達成するためにヒープを割り当てる必要はありません。私の元の目標。
なぜ私のキーは%sで、値は%sです "%(k、obj)' ??私はあなたがその鍵を知っていて、それを派生させる必要はないという価値観にアクセスすることができます。値からキーを取得する場合は、実際には別の方向に2番目のマップを作成する必要があります。 – JulienD