如何从列表中删除所有重复项

17 浏览
0 Comments

如何从列表中删除所有重复项

这个问题已经有答案了

在列表中去除重复项

我该如何使用Python检查一个列表并删除所有重复项?我不想指定哪个重复项 - 我希望代码能够找出它们是否存在,如果存在就将它们移除,只保留每个重复项的一个实例。如果列表中有多个重复项,它也必须正常工作。

例如,在我的代码中,列表lseparatedOrbList有12个项 - 其中一个重复了六次,一个重复了五次,只有一个实例。我希望它将列表更改为只有三个项 - 每个项仅保留一个,并且与先前出现的顺序相同。我尝试过这个:

for i in lseparatedOrbList:
   for j in lseparatedOrblist:
        if lseparatedOrbList[i] == lseparatedOrbList[j]:
            lseparatedOrbList.remove(lseparatedOrbList[j])

但是我遇到了错误:

Traceback (most recent call last):
  File "qchemOutputSearch.py", line 123, in 
    for j in lseparatedOrblist:
NameError: name 'lseparatedOrblist' is not defined

我猜想是因为我尝试循环遍历lseparatedOrbList,同时又在循环内部执行它,但我想不出另一种方法来执行它。

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

如果您的列表项尚未出现在新列表中,请创建一个新列表以填充它,否则只需继续处理原始列表中的下一个项。

for i in mylist:
  if i not in newlist:
    newlist.append(i)

0
0 Comments

使用 set()

woduplicates = set(lseparatedOrblist)

返回一个没有重复元素的集合。如果出于某种原因需要返回一个列表:

woduplicates = list(set(lseperatedOrblist))

不过这将会有一个不同于原始列表的顺序。

0