擅长:python、mysql、java
<p>当前代码中存在一个重大的逻辑缺陷:</p>
<pre><code>for items in d:
if bact[3] != items[3]:
d.append(bact)
</code></pre>
<p>这将为<code>d</code>中与</em>不匹配的每个项将<code>bact</code>添加到<code>d</code><em>。对于最小的修复,您需要切换到:</p>
^{pr2}$
<p>如果<code>d</code>中的所有</em>项不匹配,则添加一次<code>bact</code>。我怀疑这将意味着你的代码在更合理的时间内运行。在</p>
<hr/>
<p>除此之外,一个明显的性能改进(速度提升,尽管是以内存使用为代价)是保留到目前为止看到的第四个元素。对集合的查找使用散列,因此成员资格测试(突出显示)将更快。在</p>
<pre><code>d = []
seen = set()
for bact in c:
if bact[3] not in seen: # membership test
seen.add(bact[3])
d.append(bact)
</code></pre>