擅长:python、mysql、java
<p>你错过了一个很小但很重要的方面:</p>
<pre><code>word in open("C:\\Users\\Chris\\Python\\wordlist.txt")
</code></pre>
<p>这将逐行搜索文件,就像使用<code>open(...).readlines()</code>一样,并尝试将整行</strong>与</strong><code>'\n'</code><strong>匹配,最后</strong>。实际上,任何需要在<code>open(...)</code>上迭代的操作都像<code>readlines()</code>。你知道吗</p>
<p>你需要
<code>x+'\n' in open("C:\\Users\\Chris\\Python\\wordlist.txt")</code></p>
<p>如果文件是一个单独行上的单词列表,则可以通过此操作修复现有的内容,但在每个函数调用上执行此操作效率很低。最好做一次:</p>
<pre><code>wordlist = open("C:\\Users\\Chris\\Python\\wordlist.txt").read().split('\n')
</code></pre>
<p>如果文件是以<code>'\n'</code>分隔的单词列表,这将创建一个单词列表。请注意,您可以使用</p>
<pre><code>`readlines()`
</code></pre>
<p>而不是<code>read().split('\n')</code>,但这将保持<code>\n</code>在每个单词上,就像你有,你需要包括在你的搜索中,如我上面所示。现在您可以将列表用作全局变量或函数参数。你知道吗</p>
<pre><code>if x in wordlist: stuff
</code></pre>
<p>注:Graphier在评论中提出了一项重要建议。一套:</p>
<pre><code>wordlist = set(open("C:\\Users\\Chris\\Python\\wordlist.txt").read().split('\n'))
</code></pre>
<p>它比列表更适合于单词查找,因为它是O(单词长度)。你知道吗</p>