Объектно-ориентированное программирование удаления повторяющихся элементов (Python) - PullRequest
0 голосов
/ 08 ноября 2011

Я пытаюсь удалить элемент из отсортированного списка. Если элемент отсутствует в списке, список остается без изменений. Если элемент встречается несколько раз, удаляется только одно вхождение элемента. Опять же, мне не разрешено использовать встроенные функции списка, но пока я просто пытаюсь заставить код работать!

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 ]

2 голосов
/ 08 ноября 2011

Ваша функция удаления кажется очень запутанной.

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 голос
/ 08 ноября 2011
...