擅长:python、mysql、java
<p>我会把<code>lower</code>和<code>any</code>结合起来:</p>
<pre><code>>>> stuff = ["oranges", "POTATOES", "Pencils", "PAper"]
>>> any(s.lower() == 'paper' for s in stuff)
True
>>> any(s.lower() == 'paperclip' for s in stuff)
False
</code></pre>
<p>这将短路,一旦找到就停止搜索(不像listcomp)。哦,如果你要进行多个搜索,那么你最好使用listcomp来降低整个列表一次。</p>
<p>对于你的最新案例(为什么没有人问他们感兴趣的问题,而是一个不同的问题?),我可能会做一些</p>
<pre><code>>>> any("book" in (s.lower() for s in x) for x in stuff)
True
>>> any("paper" in (s.lower() for s in x) for x in stuff)
True
>>> any("stuff" in (s.lower() for s in x) for x in stuff)
False
</code></pre>
<p>不过,同样的规则也适用。如果您正在执行多个搜索,那么最好将列表列表规范化一次。</p>