擅长:python、mysql、java
<p>您的代码当前需要在整个列表中搜索对<code>lookfor</code>的每个调用。如果<code>alist</code>足够大,这可能会非常慢。你知道吗</p>
<p>相反,您应该创建一个字典,将每个元素映射到<code>alist</code>中的索引。例如,对于<code>alist = [7,4,88]</code>,您需要:<code>indexmap = {7:0, 4:1, 88:2}</code>。然后您可以使用以下内容搜索词典:</p>
<pre><code>def lookfor(indexmap, number):
return indexmap.get(number, "no")
</code></pre>
<p>如果<code>alist</code>是常量,则可以在初始化期间创建<code>indexmap</code>:</p>
<pre><code>indexmap = {number: index for index,number in enumerate(alist)}
</code></pre>
<p>如果<code>alist</code>随时间变化,您可以将此词典与<code>alist</code>一起维护。例如,如果通常使用<code>append</code>添加项,则可以使用:</p>
<pre><code>alist.append(number)
if number not in indexmap:
indexmap[number] = len(alist) - 1
</code></pre>