擅长:python、mysql、java
<p><strong>我会做什么</strong></p>
<p>在<code>gpX</code>列表中,不保存“子项的名称”(例如<code>"child_10"</code>),而是保存对子项点数的引用。在</p>
<p><strong>如何做到这一点</strong></p>
<p>利用列表是python中的对象这一事实,您可以:</p>
<ol>
<li>将子dict更改为:<code>children = {"child_0": [0], "child_1": [0], ...}</code>等。在</li>
<li>当您指定给组时,不要指定<em>键</em>,而是指定<em>值</em>(例如<code>gp1.append(children["child_0"])</code>)。在</li>
<li>循环应该看起来像:<code>for child in box[1]: child[0]+=1</code>。这<strong>将</strong>更新<code>children</code>dict</li>
</ol>
<p>编辑:</p>
<p><strong>为什么更快</strong>:
因为您省略了搜索<code>children[child]</code>的部分,这可能会很昂贵。在</p>
<p>这种技术之所以有效,是因为通过以可变类型存储总计,并将这些值附加到组列表中,dict值和每个框的列表值都将指向相同的列表项,更改其中一个将更改另一个。在</p>