擅长:python、mysql、java
<p>您可以使用<a href="https://docs.python.org/3/library/collections.html#collections.Counter" rel="nofollow noreferrer">^{<cd1>}</a>并隔离只出现一次的项。然后用列表理解你想要的结果。解决方案总体上是O(n),尽管它涉及3个过程。你知道吗</p>
<pre><code>x = ['Gaga', 'Gaga', 'Lam', 'Reem', 'Pal', 'Gaga','Lam']
from collections import Counter
singles = {k for k, v in Counter(x).items() if v == 1}
y = [i for i in x if i not in singles]
loc = [int(i in singles) for i in x]
print(y, loc, sep='\n')
['Gaga', 'Gaga', 'Lam', 'Gaga', 'Lam']
[0, 0, 0, 1, 1, 0, 0]
</code></pre>