擅长:python、mysql、java
<p>如果要匹配相同的字符(包括重复字符),请使用<a href="https://docs.python.org/3/library/collections.html#collections.Counter" rel="nofollow">Counter dict</a>来计算每个单词中的字符数:</p>
<pre><code>four = "laup"
from collections import Counter
four = Counter(four)
folder = ["paul","joshua","other","asdf","joshua","aa","hello"]
for word in folder:
wordstrings = Counter(word)
if not wordstrings - four:
print(word)
</code></pre>
<p>如果你在A-B之后得到一个空的计数器,这意味着A中的所有字母在A中出现的次数至少与在B中出现的次数相同:</p>
<pre><code>In [14]: Counter("foos") - Counter("foo")
Out[14]: Counter({'s': 1})
In [15]: Counter("foo") - Counter("foos")
Out[15]: Counter()
In [16]: Counter("pauls") - Counter("paul")
Out[16]: Counter({'s': 1})
In [17]: Counter("paul") - Counter("paul")
Out[17]: Counter()
</code></pre>
<p>您还可以使用<code>all</code>确保至少有四个应用程序中出现wordstrings中的字符,如果其中一个没有出现,则会短路:</p>
<pre><code>for word in folder:
wordstrings = Counter(word)
if all(wordstrings[k] - four[k] <= 0 for k in wordstrings):
print(word)
</code></pre>
<p>因为所有元素都是唯一的,所以重复的字符将被计为1。你知道吗</p>