回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一本字典,例如:</p>
<pre><code>task_list
[['Genus', {'Genus1': ['Sp1_A'], 'Genus2': ['Sp2_A', 'Sp2_B']}], ['Family', {'Family1': ['Sp1_A'], 'Family2': ['Sp2_A', 'Sp2_B']}], ['SubFamily', {'SubFamily1': ['Sp1_A'], 'SubFamily1': ['Sp2_A', 'Sp2_B']}], ['Order', {'Order': ['Sp2_A', 'Sp2_B', 'Sp1_A']}]]
</code></pre>
<p>内容如下:</p>
<pre><code>>>> for i in task_list:
... print(i)
...
['Genus', {'Genus1': ['Sp1_A'], 'Genus2': ['Sp2_A', 'Sp2_B']}]
['Family', {'Family1': ['Sp1_A'], 'Family2': ['Sp2_A', 'Sp2_B']}]
['SubFamily', {'SubFamily1': ['Sp1_A'], 'SubFamily2': ['Sp2_A', 'Sp2_B']}]
['Order', {'Order': ['Sp2_A', 'Sp2_B', 'Sp1_A']}]
</code></pre>
<p>我有一个树文件可以打印:</p>
<pre><code>>>> for leaf in tree:
... print(leaf.name)
...
YP_001.1
Sp2_A
YP_002.1
YP_003.1
Sp1_A
YP_004.1
YP_005.1
Sp2_B
Sp2_A
</code></pre>
<p>如您所见,<code>Sp1_A Sp2_A</code>和<code>Sp1_B</code>(sp1u出现两次)都在dic的值中:</p>
<p>我想为每个<code>leaf.name</code>添加一个<code>tag</code>命令:<code>leaf.add_features(tag=tag)</code>,其中<code>tag</code>应该是<code>task_list</code>中的<code>GenusNumber</code></p>
<p>所以这里:</p>
<pre><code>for leaf in tree:
tag=the corresponding `key` of the `value` in the `dic`
leaf.add_features(tag=tag)
print(tag)
</code></pre>
<p>我应该得到:</p>
<pre><code>Genus2 (corresponding to Sp2_A from task_list key)
Genus1 (corresponding to Sp1_A from task_list key)
Genus2 (corresponding to Sp2_B from task_list key)
Genus2 (corresponding to Sp2_A from task_list key)
</code></pre>
<p>谢谢你的帮助</p>