Вопрос Python.какой функцией можно вывести количество четных элементов в массиве?

Регистрация
1 Окт 2013
Сообщения
48
Репутация
0
Спасибо
0
Монет
0
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)
 
Отфильтруй и посчитай длину, например. a = [1, 2, 3, 4, 5, 6, 7]
print(len(list(filter(lambda i: i % 2 == 0, a)))) Выведет 3.
Чуть более короткий вариант: print(len([x for x in a if x % 2 == 0]))
А учитывая, что там ещё и цикл, можно заменить его.
Было: for i in a:
if i%2==0:
print(i) Стало: e = [x for x in a if x % 2 == 0]
print(*e, len(e), sep = '\n') Принт выведет сами чётные числа, по одному на строке, и отдельной строкой - их количество.

И вообще, я бы рекомендовал методом Чака Норриса переписать весь алгоритм: 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') Добавил в вывод пустые строки для ясности, где какие числа выводятся.
 
arr = [1,2,3,4,5,6,7]
evens = 0
for i in arr:
if not i%2:
evens += 1
print(evens)
 
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
 
a = [1, 2, 3, 4, 5, 6, 7]
print(sum([1 - x % 2 for x in a]))
 
Назад
Сверху