0

XMLテキストを操作してXMLテキストに戻すことができるオブジェクトにXMLテキストを解析するための独自の関数を作成しています。ネストを処理するために、XMLオブジェクトに他のXMLオブジェクトを要素として含めることを許可しています。

これらのXMLオブジェクトを自動的に生成しているので、作成時にdictの要素として入力するだけの計画です。キーとして使用できるnameという属性を生成し、XMLオブジェクト自体をそのキーに割り当てられた値にすることを計画していました。

この時点で、これはすべて私にとって理にかなっています。しかし、オブジェクトに最初に遭遇した元のXMLファイルの行である、という属性も実際に保存したいと思います。また、XMLオブジェクトをでline_number検索したい場合もあります。line_number名前ではなく。

だからこれらは私の質問です:

  1. 名前または行番号のいずれかでXMLオブジェクトを見つけることができるような方法でdictを使用することは可能ですか?つまり、dictの1つの値に複数のキーを割り当てることは可能ですか?
  2. それ、どうやったら出来るの?
  3. これが悪い考えである場合、より良い方法は何ですか?
4

3 に答える 3

2

はい、可能です。特別な魔法は必要ありません:

In [1]: val = object()

In [2]: d = {}

In [3]: d[123] = val

In [4]: d['name'] = val

In [5]: d
Out[5]: {123: <object at 0x23c6d0>, 'name': <object at 0x23c6d0>}

ただし、2つの別々の辞書を使用します。1つは名前による索引付け用で、もう1つは行番号による索引付け用です。名前と行番号のセットが完全にばらばらであっても、これはよりすっきりとしたデザインだと思います。

于 2012-12-12T18:13:04.360 に答える
2
my_dict['key1'] = my_dict['key2'] = SomeObject

うまくいくはずだと思う

于 2012-12-12T18:13:32.603 に答える
1

辞書には複数のタイプのキーを含めることができ、名前(文字列のみ)を1つのキーとして使用し、数字(整数のみ)を別のキーとして使用しているため、2つの別々のエントリが同じオブジェクトを指すようにすることができます。文字列用。

dict[0] = dict['key'] = object1

于 2012-12-12T18:15:14.930 に答える