移除列表中重复元素

1 投票
3 回答
705 浏览
提问于 2025-04-16 04:46

我想要在一个列表中去掉重复的元素,但只有当某个元素出现很多次的时候,比如这样:

li = ['Human','Human','Human'] => li = ['Human']

但是如果列表里有两个或更多不同的元素,就不去掉它们:

li = ['Human','Monkey','Human', 'Human']

3 个回答

2
lst = ['Human','Human','Human'] => lst = ['Human']
lst = ['Human','Monkey','Human', 'Human'] => lst = ['Human','Monkey','Human', 'Human']

这就是你想要的结果吗?

if lst.count(lst[0])==len(lst):
   lst=list(set(lst))
   print lst 
else:
   print lst 
4

你可以像下面这样简单地用集合来实现:

li = list(set(li))
3
def clean(lst):
    if lst.count(lst[0]) == len(lst):
        return [lst[0]]
    else:
        return lst

这样做是你想要的效果吗?

如果是的话,你也可以直接在原地进行操作。

def clean_in_place(lst):
    if lst.count(lst[0]) == len(lst):
        lst[:] = [lst[0]]

撰写回答