我有以下单词列表:

x = ['Gaga', 'Gaga', 'Lam', 'Reem', 'Pal', 'Gaga','Lam']


我需要删除仅出现一次的单词,然后返回索引或位置。

y = ['Gaga', 'Gaga', 'Lam', 'Gaga', 'Lam']

loc = [0, 0, 0, 1, 1, 0, 0]


有任何简单的功能可以做到这一点吗?

最佳答案

具有pandas模块及其pd.Series.duplicated()功能的替代单线:

In [80]: x = ['Gaga', 'Gaga', 'Lam', 'Reem', 'Pal', 'Gaga','Lam']

In [81]: (~pd.Series(x).duplicated(keep=False)).astype(int).tolist()
Out[81]: [0, 0, 0, 1, 1, 0, 0]




要删除所有非重复项:

In [85]: s = pd.Series(x)

In [86]: s[s.duplicated(keep=False)].tolist()
Out[86]: ['Gaga', 'Gaga', 'Lam', 'Gaga', 'Lam']

09-27 02:44