lxml を使用して処理しているタグ付きデータがいくつかあります。ファイルを開くとき、ファイルを開く前に、3 つのタイプの要素のうち 1 つ以上があるかどうかわかりません (1 つ、2 つ、または 3 つの異なる要素と、任意のタイプの複数のインスタンスを持つことができます)
要素の子タグに含まれるこれらの要素に関する情報が必要です
<element_type_1>
<name>joe smith</name>
</element_type_1>
<element_type_2>
<name>mary smith</name>
</element_type_2>
<element_type_3>
<name>patrick smith</name>
</element_type_3>
したがって、この場合、3 つのタイプすべてがありますが、各タイプは 1 つだけですが、任意のタイプの任意の数まで存在する可能性があります。
cssselect
関数で3回使用して要素を取得しています
def get_types(myTree):
type_dict=defaultdict(list)
type_dict['type_1']=myTree.cssselect('element_type_1')
type_dict['type_2']=myTree.cssselect('element_type_2')
type_dict['type_3']=myTree.cssselect('element_type_3')
ret type_dict
これは冗長すぎるようです
これを少しきれいにする何かが欠けていますか?
参考までに、タイプごとに関連ドキュメントの他のデータと一致させる必要があるため、これを行っています
初期の回答は、少し明確にする必要があることを示唆しています-ツリーを3回実行するのを避けたいです