2015-10-21 2 views
0

Я хочу написать функцию, которая удалит определенное целое из списка. Оба значения введены. Например, removeValues([1, 2, 3], 3) будет возвращать список [1, 2]:Удаление целого из списка (оба ввода от пользователя)

def removeValues(aList, n): 
    newList = [] 
    if n in aList: 
     aList.remove(n) 

     newList.append(aList) 
    else: 
     return False 

Я не уверен, что если .remove правильный путь.

+0

Но уже есть метод 'list.remove 'для этого ... – wim

+0

Почему вы добавляете свой список в другой список? '[[1,2]]' Просто удалите его и престо! '[1,2]' – Onilol

+1

* «Я не уверен, что .remove - правильный путь» * - вы его протестировали? Это сработало? – jonrsharpe

ответ

0
list(filter(lambda x : x != 3, [1,2,3])) 

Использовать фильтр Фильтр принимает ссылку на функцию и список элементов. функция записывается для приема элемента списка и возвращает true или false на основе требуемого предиката, такого как x != 3. для каждого элемента функция проверяет предикат, и только если условие возвращает True, элемент включается в выходной список.

Как говорится в комментариях, простое удаление в списке выполнит эту работу.

+0

Где бы эта строка кода вписывалась в функцию? Первая строка после функции определена? – wahlysadventures

+0

это полная замена вашей функции – saikumarm

0

Функция, которая удаляет все вхождения определенного значения из списка может быть записана следующим образом:

>>> def removeAll(list, value): 
...  while value in list: 
...   list.remove(value) 
... 
>>> a = [1,2,3,3,4] 
>>> removeAll(a, 3) 
>>> print(a) 
[1,2,4] 
Смежные вопросы