Удалить все положительные числа с помощью лямбда функции. Как правильно ставить условия в лямбда функции?
Дана последовательность чисел.
Как удалите из нее все положительные числа?
Мое решение:
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]