Удалить все положительные числа с помощью лямбда функции. Как правильно ставить условия в лямбда функции?

Дана последовательность чисел.

Как удалите из нее все положительные числа?

Мое решение:

l = [-323, 4677, -234, 12, 35, -71, 4]

func = list(map(lambda x: l.remove(x) if x > 0 else x, l))

Ответы (2 шт):

Автор решения: MaxU

я бы воспользовался функцией filter():

res = list(filter(lambda x: x <= 0, l))

результат:

In [21]: res
Out[21]: [-323, -234, -71]

Если нужно получить сумму всех неположительных чисел:

res = sum(filter(lambda x: x <= 0, l))
→ Ссылка
Автор решения: Eoan Ermine

Лучше воспользоваться встроенной функцией filter, отсеивающей элементы, не соответствующие переданному предикату:

l = [-323, 4677, -234, 12, 35, -71, 4]
func = list(filter(lambda x: x <= 0, l))
print(func)

Вывод:

[-323, -234, -71]
→ Ссылка