我有一个项目列表,我想删除其中任何一个项目的重复出现,但保留其他项目的重复项。即我从以下列表开始:
mylist = [4, 1, 2, 6, 1, 0, 9, 8, 0, 9]
我希望删除任何重复的
0
,但保留1
和9
的重复项。
我的当前解决方案如下:mylist = [i for i in mylist if i != 0]
mylist.add(0)
除了以下方式外,是否有保留一个0
的好方法?
for i in mylist:
if mylist.count(0) > 1:
mylist.remove(0)
第二种方法在这个例子中所需的时间超过了两倍。
澄清:
- 目前,我不关心列表中项目的顺序,因为我在创建和清理后对其进行排序,但以后可能会改变。 - 目前,我只需要删除一个特定项目(在我的示例中为
0
)的重复项。
[0] + [i for i in mylist if i != 0]
- Omar Einea