Допоможіть ,ПАЙТОН !!! У списку цілих, заповненому випадковими числами, визначте мінімальний та максимальний елементи, підрахуйте
кількість від’ємних елементів, додатних елементів та кількість
нулів. Результати виведіть на екран.
Ответы
Код:
def calcList(l):
print(f"Мінімальний {min(l)}")
print(f"Максимальний {max(l)}")
print(f"Кількість від’ємних {len([x for x in l if x < 0])}")
print(f"Кількість додатних {len([x for x in l if x > 0])}")
print(f"Кількість нулів {len([x for x in l if x == 0])}")
calcList([-2,5,-7,0])
Ответ:
from random import randint
a=[randint(-10,10) for _ in range(20)]
print(a)
pos=sum([i>0 for i in a])
zero=a.count(0)
print(f'max={max(a)}\nmin={min(a)}\npositive={pos}\nzero={zero}\nnegative={len(a)-pos-zero}')
Объяснение:
1) При каждом запуске у нас будут новые случайные числа
2) Вывод этой случайной матрицы
3) Каждый следующий вывод мы считаем разным методом, при этом он самый оптимальный. Сравните
sum([i>0 for i in a]) и len([x for x in a if x>0])
a.count(0) и len([x for x in a if x==0])
Ну и последнее - для отрицательных это разность общего объема минус положительные и нули.
Таким образом мы еще и выучили 3 разных способа формирования этих результатов.
4) min, max - стандарт.
5) вывод - f-строка с переносом строк.
k = 49636, time = 0.02702474594116211
k = 49636, time = 0.02399611473083496
k = 49506, time = 0.038001060485839844
k = 49506, time = 0.03799891471862793
k = 49936, time = 0.02598261833190918
k = 49936, time = 0.025997400283813477
в общем можно использовать и тот и другой вариант. Не один из них особо быстрее не работает
1: 0.004184025287628174
2: 0.0038939692974090576