在Python中,如何从一个或多个列表中移除重复项?

10 浏览
0 Comments

在Python中,如何从一个或多个列表中移除重复项?

这个问题已经有答案了

在列表中删除重复项

例如,如果我有:

a = ["apples", "bananas", "cucumbers", "bananas"]

我该如何删除\"bananas\"这个重复的元素,才能得到:

a = ["apples", "bananas", "cucumbers"]

另外,如果我有:

a = ["apples", "bananas", "cucumbers"]
b = ["pears", "apples", "watermelons"]

我该如何从这两个列表中删除重复的\"apples\",得到:

a = ["bananas", "cucumbers"]
b = ["pears", "watermelons"]

admin 更改状态以发布 2023年5月22日
0
0 Comments

使用内置函数set

a = ["apples", "bananas", "cucumbers", "bananas"]
a = list(set(a))
print(a)

在第二种情况下,使用列表推导

a = ["apples", "bananas", "cucumbers"]
b = ["pears", "apples", "watermelons"]
r = [i for i in a if i not in b] + [i for i in b if i not in a]    
print(r)

0
0 Comments

基于集合的解决方案不会保留项目的顺序。以下方法将保留项目的顺序并删除除第一个出现之外的所有项目,使用辅助集来跟踪哪些项目已经被看到。

seen = set()
a = [seen.add(item) or item for item in a if item not in seen]

如果您想重用相同的列表对象,可以通过以下方式实现:

seen = set()
a[:] = (seen.add(item) or item for item in a if item not in seen)

0