回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一张这样的单子</p>
<pre><code>matches = [[['rootrank', 'Root'], ['domain', 'Bacteria'], ['phylum', 'Firmicutes'], ['class', 'Clostridia'], ['order', 'Clostridiales'], ['family', 'Lachnospiraceae'], ['genus', 'Lachnospira']],
[['rootrank', 'Root'], ['domain', 'Bacteria'], ['phylum', '"Proteobacteria"'], ['class', 'Gammaproteobacteria'], ['order', '"Vibrionales"'], ['family', 'Vibrionaceae'], ['genus', 'Catenococcus']],
[['rootrank', 'Root'], ['domain', 'Archaea'], ['phylum', '"Euryarchaeota"'], ['class', '"Methanomicrobia"'], ['order', 'Methanomicrobiales'], ['family', 'Methanomicrobiaceae'], ['genus', 'Methanoplanus']]]
</code></pre>
<p>我想从中构建一个系统进化树。我编写了这样一个节点类(部分基于<a href="http://infohost.nmt.edu/~shipman/xnomo/tree.py" rel="noreferrer">this code</a>):</p>
^{pr2}$
<p>然后我试着像这样建造我的树:</p>
<pre><code>node = None
for match in matches:
for branch in match:
category, name = branch
node = Node(node, category, name)
print [n.ID() for n in node.fullPath()]
</code></pre>
<p>这适用于第一个匹配项,但是当我从第二个匹配项开始时,它将被追加到树的末尾,而不是再次从顶部开始。我该怎么做?我尝试了一些不同的方法来搜索身份证,但是我无法使它起作用。在</p>