Python 从列表中删除副本
对于上下文:用户可以将项目添加到列表中。我想删除所有相同的提交。有没有更有效的方法来做到这一点:Python 从列表中删除副本,python,Python,对于上下文:用户可以将项目添加到列表中。我想删除所有相同的提交。有没有更有效的方法来做到这一点: 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.de
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
我能想到的删除重复项的最有效方法是
self.contents = list(set(self.contents))
这不会保留项目的顺序,但至少不会使用O(n3)算法
一个更好的解决方案是首先设置
self.contents
aset
,这样用户就根本不能输入重复项,如果你有选择的话。我能想到的删除重复项的最有效方法是
self.contents = list(set(self.contents))
这不会保留项目的顺序,但至少不会使用O(n3)算法
一个更好的解决方案是首先设置
self.contents
aset
,这样用户就不能输入重复项,如果您可以这样做的话。为什么不使用set作为开始?删除重复项并保留顺序:为什么不使用set作为开始?删除重复项并保留顺序: