Python.Какой функцией можно вывести КОЛИЧЕСТВО четных элементов в массиве?
import random
a=[]
for i in range(10):
a.append(random.randint(5,15))
print(a)
a.insert(1,25)
print(a[1])
for i in a:
if i%2==0:
print(i)
И так в конце надо вывести КОЛИЧЕСТВО чётных чисел,подскажите какая функция есть для этого(Python)
По дате
По рейтингу
Отфильтруй и посчитай длину, например.
12
a = [1, 2, 3, 4, 5, 6, 7]
print(len(list(filter(lambda i: i % 2 == 0, a))))
Выведет 3.
Чуть более короткий вариант:
1
print(len([x for x in a if x % 2 == 0]))
А учитывая, что там ещё и цикл, можно заменить его.
Было:
123
for i in a:
if i%2==0:
print(i)
Стало:
12
e = [x for x in a if x % 2 == 0]
print(*e, len(e), sep = '\n')
Принт выведет сами чётные числа, по одному на строке, и отдельной строкой - их количество.
И вообще, я бы рекомендовал методом Чака Норриса переписать весь алгоритм:
12345678910
import random
a = [random.randint(5, 15) for i in range(10)]
print(*a, '', sep = '\n')
a.insert(1,25)
print(a[1], '\n')
e = [x for x in a if x % 2 == 0]
print(*e, '', len(e), sep = '\n')
Добавил в вывод пустые строки для ясности, где какие числа выводятся.
12
a = [1, 2, 3, 4, 5, 6, 7]
print(sum([1 - x % 2 for x in a]))
123456
arr = [1,2,3,4,5,6,7]
evens = 0
for i in arr:
if not i%2:
evens += 1
print(evens)
123456
import numpy as np
a = np.random.randint(5, 15, size=10)
print(a)
print((a%2==0).sum())
# [8 3 5 2 8 3 0 7 2 6]
# 6
Вводи еще одну переменную как счетчик
Больше по теме