面向对象的编程删除重复项(Python)

时间:2011-11-08 03:37:08

标签: python list duplicates

我正在尝试从排序列表中删除项目。如果该项目不在列表中,则列表保持不变。如果项目多次出现,则只删除一次项目。同样,我不允许使用内置列表函数,但暂时,我只是想让代码正常工作!

class SortedList:
    def __init__(self):
        self.s_list = []
    def insert(self, item):
        self.s_list.append(item)

    def remove(self, item):
        finalSet=[]
        for item in self.s_list:
            if item not in finalSet:
                finalSet.append(item)
                return finalSet
    def __str__(self):
        return str(self.s_list)

2 个答案:

答案 0 :(得分:2)

你的删除功能似乎很困惑。

def remove(self, item):
    finalSet=[]
    for item in self.s_list:
        if item not in finalSet:
            finalSet.append(item)
            return finalSet
  1. 为什么要创建新列表,是否应该修改现有列表?
  2. 函数中有两个不同的item。一个是函数的参数,另一个是循环。循环中的那个替换参数。给他们不同的名字
  3. 您几乎立即返回列表,您可能不希望在循环完成之后返回。你的退货声明太过分了
  4. 由于你给两个不同的变量赋予了相同的名字,因此我无法猜测你在循环中实际上想要做什么。

答案 1 :(得分:1)