Задачи на списки в Python: 1. Опишите алгоритм подсчета произведения всех отрицательных элементов заданного целочисленного массива размером 30 элементов
2. Опишите алгоритм подсчета максимального количества подряд идущих отрицательных элементов в заданном целочисленном массиве длиной 30.
3. Опишите алгоритм подсчета суммы всех отрицательных элементов заданного целочисленного массива размером 30 элементов. Если отрицательных элементов нет сообщите об этом выводом «NO» на экран
Вот код:
import random
# Сгенерируем список
lst = [random.randint(-30, 30) for _ in range(30)]
# 1
result = 1
for item in lst:
if item < 0:
result *= item
print(result)
# или
from functools import reduce
print(reduce(lambda x, y: x * y,
filter(lambda item: item < 0, lst)))
# 2
max_count = 0
count = 0
for item in lst:
if item < 0:
count += 1
if count > max_count:
max_count = count
print(max_count)
# 3
result = 0
for item in lst:
if item < 0:
result += item
print(result)
# или
negative_nums = list(filter(lambda item: item < 0, lst))
print(sum(negative_nums) if negative_nums else "NO")