对于上下文:用户可以将项目添加到列表中。我要删除所有相同的提交。有没有更有效的方法可以做到这一点:?
def removeCopies(self):
i = 0
while i != self.size:
number = self.contents.count(self.contents[i])
if number != 1:
for j in range(1, number):
self.delete(self.contents.index(self.contents[i], i + 1))
i += 1
答案 0 :(得分:3)
我想到的最有效的删除重复项的方法是
self.contents = list(set(self.contents))
这不会保留项目的顺序,但至少不会以O(n 3 )算法结束。
更好的解决方案是将self.contents
设为set
,因此,如果可以选择的话,用户根本不能输入重复项。