#python #list #object #arraylist
Вопрос:
Я пытаюсь написать функцию класса, которая удаляет первое появление e (число int) из моего списка массивов и возвращает значение True, но если оно отсутствует, то возвращает значение false без корректировки моего списка массивов.
def removeVal(self, e): A = self.inArray for x in A: i =1 if x == e: A.remove(i) self.inArray = A return True return False list = [1,2,2,3,4,5] list.removeVal(2) print(list) class ArrayList: def __init__(self): self.inArray = [] self.count = 0 def get(self, i): return self.inArray[i] def set(self, i, e): self.inArray[i] = e def length(self): return self.count def isIn(A, k): # similar to this # for i in range(len(A)): # if A[i] == k: # return True # return False
Комментарии:
1. И что именно не работает / в чем проблема?
2. Мне жаль, но я не понимаю ваших намерений, не могли бы вы, пожалуйста, уточнить. Под функцией класса вы подразумеваете метод внутри объекта python?
3. похоже, вы пытаетесь изменить список, повторяя его, что проблематично.
4. В вашем коде нет класса.
A = self.inArray
бессмысленно без этого5. Вы пытаетесь программировать Python так, как если бы это была Java. Даже если вам нужны сеттеры и геттеры, это не то, как это сделать
Ответ №1:
Вы можете просто проверить, есть ли e в списке. список.удалить(x) удаляет первое появление x в списке.
Вы можете отключить «свой список» с помощью списка, который вы используете.
def removeVal(self, e): if e in yourlist: yourlist.remove(e) return True return False
Комментарии:
1.
yourList
даже не существует в этом фрагменте кода. Это невозможно запустить2. было неясно, какой список он хотел использовать, так как он не указал атрибуты класса. Поэтому я сказал, что он может заменить «ваш список» списком, который он хочет использовать.
3. Тогда не отвечай. Это не может быть ответом, если вы даже не знаете, о чем они спрашивают
4. Я пытаюсь повторить это, не используя «если e в списке», например, что-то похожее на (см. Конец исходного сообщения)
5. Не говоря уже о том, что этот код действительно не имеет смысла. Зачем вам возвращать bool для удаления элементов из списка? Если это было в списке, то теперь вы убедились, что это не так, так что же
True
это значит?