擅长:python、mysql、java
<p>由于其他答案在撰写本文时不支持颠倒顺序:</p>
<p>为了方便起见,包含<a href="https://www.python.org/dev/peps/pep-0484/" rel="nofollow">type hints</a>,因为为什么不呢?你知道吗</p>
<pre><code># Just strip hints out if you're in Python < 3.5.
def is_anagram(a: str, b: str) -> bool:
long, short = (a, b) if len(a) > len(b) else (b, a)
cut = [x for x in long if x in short]
return sorted(cut) == sorted(short)
</code></pre>
<p>如果将来您确实学会了使用<code>lambda</code>,那么等效的用法是:</p>
<pre><code># Again, strip hints out if you're in Python < 3.5.
def is_anagram(a: str, b: str) -> bool:
long, short = (a, b) if len(a) > len(b) else (b, a)
# Parentheses around lambda are not necessary, but may help readability
cut = filter((lambda x: x in short), long)
return sorted(cut) == sorted(short)
</code></pre>