1
私はPythonには新しく、辞書から継承したクラスを作成しようとしていましたが、同時に属性名の反転マップを持っていました。 reversemap属性は、メイン辞書の値のキーを含む別の辞書です。以下のように例: - :「DictWithReverseMap」オブジェクトが何を持っている私はHH [「1」]に代入しようとすると、それは self.reversemap [アイテム] =キー はAttributeErrorがあることを知らせるないエラーをスローします辞書から継承したクラスに逆マップ辞書属性を追加する
class DictWithReverseMap(dict):
def __init__(self):
self.reversemap = dict()
self.__dict__ = dict()
def __setitem__(self, key, item):
self.__dict__[key] = item
self.reversemap[item] = key
hh= DictWithReverseMap()
hh['1'] = "a"
hh['2'] = "a"
hh['3'] = "b"
print hh[1] #result [a]
print hh.reversemap[b] #result [3]
属性 'reversemap'
すべてのアイデア?ありがとう。
ありがとうございます! hh.reversemap ['a']を印刷するのはなぜ2を返すのかというもう一つの疑問です。それは1と2の両方を正しく返しますか? – VeecoTech
1つのキーは1つの辞書に2つの値を持つことはできません。しかし、代わりにリストを使用するあなたのアプローチを変更することができます。 –