подсчет числа значений в списке, удовлетворяющих условию
дан список list = [1,12,24,3551,23,35353,3223,4,5524,1347,98395,3,234,58,24,90,140]
необходимо осуществить подсчет значений в списке согласно условию, например больше/меньше 100. Желательно чтобы выводилось следующее:
В списке N чисел больше 100 В списке N чисел меньше 100
Возникли трудности с данной задачей и пока получается следующее:
list = [1,12,24,3551,23,35353,3223,4,5524,1347,98395,3,234,58,24,90,140]
for i in list:
if i >= 100:
print(f'В списке {(i)} чисел больше 100')
else:
print(f"В списке {(i)} чисел меньше 100 ")
но это просто перебор, а как сделать подсчет значений, которые будет больше/меньше заданного условия. Заранее спасибо.
Ответы (4 шт):
Автор решения: вася
→ Ссылка
l = [1,12,24,3551,23,35353,3223,4,5524,1347,98395,3,234,58,24,90,140]
print(len([1 for x in l if x >= 100]))
print(sum(1 for _ in filter(lambda x: x >= 100, l)))
print(sum(1 for x in l if x >= 100))
Вариант от @Михаил Муругов:
l = [1,12,24,3551,23,35353,3223,4,5524,1347,98395,3,234,58,24,90,140]
print(sum(x >= 100 for x in l))
Автор решения: strawdog
→ Ссылка
res = [int(x/100) for x in l]
print(f"в списке {res.count(0)} чисел меньше 100 и {len(res)-res.count(0)} чисел больше 100")
Автор решения: Эникейщик
→ Ссылка
Совсем для начинающих:
numbers = [1,12,24,3551,23,35353,3223,4,5524,1347,98395,3,234,58,24,90,140]
# не используйте слово list для названия переменной
greater100 = 0
less100 = 0
for i in numbers:
if i >= 100:
greater100 = greater100 + 1
else:
less100 = less100 + 1
print(f"В списке {(greater100)} чисел больше 100 ")
print(f"В списке {(less100)} чисел меньше 100 ")
Автор решения: passant
→ Ссылка
Ну, раз пошли "изобретения" разных методов решения этой задачи - то вот еще в копилку. С параллельным изучением функции filter
def is_gt_100(i):
if i > 100:
return True
else:
return False
lst = [1,12,24,3551,23,35353,3223,4,5524,1347,98395,3,234,58,24,90,140]
sum100=0
sum(list(filter(is_gt_100, lst)) )
Результат:
Out[2]: 147767