Top.Mail.Ru
Ответы

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 
Аватар пользователя
Мудрец

Вводи еще одну переменную как счетчик