【发布时间】:2011-10-09 13:04:04
【问题描述】:
如何使用 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 <module>
for j in lseparatedOrblist:
NameError: name 'lseparatedOrblist' is not defined
我猜是因为我在循环遍历 lseparatedOrbList 时尝试遍历它,但我想不出另一种方法。
【问题讨论】:
-
需要维护列表的顺序吗?
-
您的错误是由于一个简单的拼写错误:您没有在第二个 for 循环中将 lseparatedOrbList 中的第二个“l”大写。