функция класса для удаления значения из объекта списка массивов

#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 это значит?