- Количество элементов в списке Python с условиями или критериями
- 1. Использование цикла for для подсчета в списке Python
- 2. Применение len() со списковыми включениями для подсчета в списке Python
- Подсчет ненулевых элементов
- 3. sum() и выражение-генератор для подсчета в списке Python
- 4. sum() и map() для подсчета элементов списка Python с условиями или критериями
- 5. reduce() с лямбда-функцией для подсчета элементов списка Python с условием или критериями
- Найти элементы массива, равных 0, и их количество
- Решение
- Python-сообщество
- #1 Июль 3, 2020 17:53:48
- Подсчет количества нулей в массиве_что не так
- #2 Июль 3, 2020 18:17:29
- Подсчет количества нулей в массиве_что не так
- #3 Июль 3, 2020 18:40:53
- Подсчет количества нулей в массиве_что не так
- #4 Июль 3, 2020 19:03:53
- Подсчет количества нулей в массиве_что не так
- #5 Июль 3, 2020 19:07:18
- Подсчет количества нулей в массиве_что не так
- #6 Июль 3, 2020 19:20:50
- Подсчет количества нулей в массиве_что не так
- #7 Июль 3, 2020 19:37:31
- Подсчет количества нулей в массиве_что не так
- #8 Июль 3, 2020 21:18:05
- Подсчет количества нулей в массиве_что не так
- #9 Июль 4, 2020 00:59:29
- Подсчет количества нулей в массиве_что не так
Количество элементов в списке Python с условиями или критериями
В этом посте мы рассмотрим, как узнать число элементов в списке Python, удовлетворяющих определенным условиям или критериям.
Если вам просто нужно найти количество конкретных элементов с списке, используйте метод .count()
>>> list_numbers = [1, 2, 2, 5, 5, 7, 4, 2, 1] >>> print(list_numbers.count(2)) 3Существует несколько способов такого подсчета, и мы изучим каждый из них с помощью примеров. Итак, давайте начнем.
1. Использование цикла for для подсчета в списке Python
В этом фрагменте кода мы используем цикл for для подсчета элементов списка Python, удовлетворяющих условиям или критериям. Мы перебираем каждый элемент списка и проверяем условие, если оно истинно, то мы увеличиваем счетчик на 1. Это простой процесс сопоставления и подсчета для получения интересующего нас количества.
list_numbers = [78, 99, 66, 44, 50, 30, 45, 15, 25, 20] count = 0 for item in list_numbers: if item%5 == 0: count += 1 print("количество элементов списка, удовлетворяющих заданному условию:", count)количество элементов списка, удовлетворяющих заданному условию: 6
2. Применение len() со списковыми включениями для подсчета в списке Python
В представленном ниже фрагменте кода, мы используем списковые включения (list comprehension), чтобы создать новый список, элементы которого соответствует заданному условию, после чего мы получаем длину собранного списка. Это намного легче понять на примере, поэтому давайте перейдем к нему.
list_numbers = [78, 99, 66, 44, 50, 30, 45, 15, 25, 20] element_count = len([item for item in list_numbers if item%5 == 0]) print( "количество элементов списка, удовлетворяющих заданному условию:", element_count )количество элементов списка, удовлетворяющих заданному условию: 6
Подсчет ненулевых элементов
В этом примере мы находим общее количество ненулевых элементов. Чтобы узнать число нулевых членов списка, мы можем просто изменить условие на if item == 0 .
list_numbers = [78, 99, 66, 44, 50, 30, 45, 0, 0, 0] element_count = len([item for item in list_numbers if item != 0]) print( "количество элементов списка, удовлетворяющих заданному условию:", element_count )количество элементов списка, удовлетворяющих заданному условию: 7
3. sum() и выражение-генератор для подсчета в списке Python
В этом примере кода мы используем sum() с генераторным выражением. Каждый элемент списка проходит проверку условием и для тех элементов, которые ему удовлетворяют, возвращается значение True . Метод sum() в свою очередь подсчитывает общее число истинных значений.
list_numbers = [78, 99, 66, 44, 50, 30, 45, 15, 25, 20] count = 0 count = sum(True for i in list_numbers if i % 5 == 0) print( "количество элементов списка, удовлетворяющих заданному условию:", count )количество элементов списка, удовлетворяющих заданному условию: 6
4. sum() и map() для подсчета элементов списка Python с условиями или критериями
Функция map(fun, iterable) принимает два аргумента: итерируемый объект (это может быть строка, кортеж, список или словарь) и функцию, которая применяется к каждому его элементу, — и возвращает map-объект (итератор). Для применения одной функции внутри другой идеально подходит лямбда-функция. Таким образом, map() примет первый аргумент в виде лямбда-функции.
Здесь sum() используется с функцией map() , чтобы получить количество всех элементов списка, которые делятся на 5.
Давайте разберемся на примере, в котором переданная лямбда-функция предназначена для фильтрации членов списка, не кратных 5.
list_numbers = [78, 99, 66, 44, 50, 30, 45, 15, 25, 20] count = 0 count = sum(map(lambda item: item % 5 == 0, list_numbers)) print( "количество элементов списка, удовлетворяющих заданному условию:", count )количество элементов списка, удовлетворяющих заданному условию: 6
5. reduce() с лямбда-функцией для подсчета элементов списка Python с условием или критериями
Lambda — это анонимная (без имени) функция, которая может принимать много параметров, но тело функции должно содержать только одно выражение. Лямбда-функции чаще всего применяют для передачи в качестве аргументов в другие функции или для написания более лаконичного кода. В этом примере мы собираемся использовать функции sum() , map() и reduce() для подсчета элементов в списке, которые делятся на 5.
Приведенный ниже код наглядно демонстрирует это.
from functools import reduce list_numbers = [78, 99, 66, 44, 50, 30, 45, 15, 25, 20] result_count = reduce( lambda count, item: count + (item % 5 == 0), list_numbers, 0 ) print( "количество элементов списка, удовлетворяющих заданному условию:", result_count )количество элементов списка, удовлетворяющих заданному условию: 6
Надеюсь, что вы узнали о различных подходах к подсчету элементов в списке Python с помощью условия или критериев для фильтрации данных.
Найти элементы массива, равных 0, и их количество
Найти количество элементов в этих массива равных первому элементу массива S
Даны целочисленные массивы S и T с разным количеством элементов. Найти количество элементов в этих.Найти количество элементов в этих массива равных первому элементу массива S.
Даны целочисленные массивы S и T с разным количеством элементов. Найти количество элементов в этих.Задача с массивами. Найти количество элементов в этих массива равных первому элементу массива S
Помогите, пожалуйста Выполнить обработку линейных массивов. Заполнение массивов произвести с.Найти количество элементов массива, равных 0
1. Знайти кількість елементів масиву, рівних 0. 2. Знайти суму елементів масиву, розташованих.Найти количество элементов массива равных С
Помогите пожалуйста написать программу: В одномерном массиве состоящем из n целочисленных.Сообщение было отмечено yamatoshi как решение
Решение
Найти количество элементов массива, равных 0
В одномерном массиве, состоящем из действительных элементов, вычислить: 1) количество элементов.Найти количество элементов массива, равных 0
Добрый вечер всем. У меня есть задание: 1.Разработать алгоритм программы, которая решает Ваше.Найти количество элементов массива, равных 0
Хлопцы патрэбна дапамога!Буду вельмі ўдзячны!:) Условие:При написании программ использовать.Все положительные элементы массива увеличить вдвое, а также вычислить количество элементов равных 0
В одномерном массиве целых чисел A(12) все положительные числа увеличить вдвое, а также вычислить.Найти элементы массива К, не имеющие себе равных в массиве L
(Векторы) Даны два целочисленных массива K(m) и L(n). Найти элементы массива К, не имеющие себе.Python-сообщество
- Начало
- » Python для новичков
- » Подсчет количества нулей в массиве_что не так
#1 Июль 3, 2020 17:53:48
Подсчет количества нулей в массиве_что не так
Доброго дня!
Помогите разобраться в логике, вернее,где не так…
Задача, думаю, всем знакома: подсчет нулей в массиве.
В идеале это выполнить так:
N=int(input("Введите число элементов массива: ")) n=[] for i in range(N): n.append(int(input("Введите число массива: "))) print("Количество нулей в массиве: ",n.count(0))
N=int(input("Введите число элементов массива: ")) Q=0 for i in range(N): n=int(input("Введите число массива: ")) if n==0: Q+=1 print("Количество нулей в массиве: ",Q)
но нет данных по введенному массиву.
Как объединить оба кода, чтобы и введенный массив показывал и нули подсчитывал (желательно через if)?
При таком варианте считает неверно:
N=int(input("Введите число элементов массива: ")) n=[] q=0 for i in range(N): n.append(int(input("Введите число массива: "))) if n==0: q=q+1 print("Массив: ",n) print("Количество нулей в массиве: ",q)
#2 Июль 3, 2020 18:17:29
Подсчет количества нулей в массиве_что не так
#3 Июль 3, 2020 18:40:53
Подсчет количества нулей в массиве_что не так
Вероятно, некорректно выразился.
Задание - написать код, который выводит количество чисел равных нулю. Но в связи с тем, что я только обучаюсь, мы еще не проходили функции. Поэтому, необходимо использовать код, похожий на циклы…
Из приведенных примеров, 1-ый вариант сам допетрил, 2-ой подсмотрел.
Что неверно в объединенном варианте?
#4 Июль 3, 2020 19:03:53
Подсчет количества нулей в массиве_что не так
N=int(input("Введите число элементов массива: ")) n=[] for i in range(N): n.append(int(input("Введите число массива: "))) print("Количество нулей в массиве: ",n.count(0))
#5 Июль 3, 2020 19:07:18
Подсчет количества нулей в массиве_что не так
Скажем так, count я еще знать не должен… Да, Бог с ним… Оба варианта задачу решают.
Я пытаюсь для себя понять, почему в 3-ем варианте не считает нули? Где ощибка?
#6 Июль 3, 2020 19:20:50
Подсчет количества нулей в массиве_что не так
n.append(int(input("Введите число массива: "))) if n==0:
#7 Июль 3, 2020 19:37:31
Подсчет количества нулей в массиве_что не так
Отталкивался от 2-го варианта, но там, действительно идет ввод числа и потом поиск его равенства нулю.
Спасибо.
В моем обобщенном варианте, да, n - выходит список массива. Зашел в тупик…
Подсказку не дадите для дилетанта?
#8 Июль 3, 2020 21:18:05
Подсчет количества нулей в массиве_что не так
смотрим элемент массива который является списком. смотрим и считаем количество нулей в этом элементе списке.
у вас нет ‘массива’. у вас просто список. тупо в цикле перебираем элементы и считаем нули
#9 Июль 4, 2020 00:59:29
Подсчет количества нулей в массиве_что не так
input и print - это функции.
>>> input built-in function input> >>> print built-in function print> >>>
Видимо, тебе запрещено использовать методы списка, кортежа и других аналогов массива.
Sabach
Как объединить оба кода, чтобы и введенный массив показывал и нули подсчитывал (желательно через if)?
Во-первых, ты ошибочно думаешь, что их надо объединять. В программировании нужно, наоборот, всё разделять при первой же возможности. Модульная система. Если в одном модуле что-то произошло, то надо его просто изолировать, чтобы вся программа продолжила работать или разрабатываться в прежнем режиме. Это как на подводной лодке или на космической станции - при любом ЧП изолируется отсек (он же модуль).
Поэтому сначала ты должен ввести данные, и только после этого ты должен работать с данными.
Тут пошёл алгоритм:
1. Ввести данные.
2. Посчитать нули.
3. Вывести результаты.
Каждое действие выполняешь по очереди и следующее действие не начинаешь, пока полностью не закончишь предыдущее.
Сам всё сделаешь? Начни с первого действия и полностью его выполни. Покажи код, чтобы тебе сказали “да, правильно сделал это”. После этого сделай второе действие и полностью его выполни. Покажи код, чтобы тебе сказали “да, правильно сделал это”. Либо тебе скажут на втором действии “нет, неправильно ты это сделал”. Тогда ты станешь переделывать второе действие, но при этом первое действие не будет затронуто этой корректировкой, так как оно выполнено правильно. Это метод отсечений: написал что-то правильно - отложил в сторону, приступил к следующему. Когда у тебя первое действие выполнено правильно, второе действие выполнено правильно, только тогда ты делаешь третье действие. И так же приходишь и показываешь код и тебе говорят “да, правильно сделал это”. Когда у тебя первое действие выполнено правильно, второе действие выполнено правильно, третье действие выполнено правильно, тогда ты правильно выполнил весь алгоритм. Тут кроется маленький секрет: этот весь алгоритм потом становится одним маленьким действием в другом алгоритме, а тот другой алгоритм сам по себе тоже потом становится одним маленьким действием в ещё каком-то другом алгоритме. И тут кроется ещё один секрет: если тебе надо посчитать нули на сайте, а не в массиве, то ты берёшь готовый алгоритм и заменяешь полностью в нём первое действие, не затрагивая ничего во втором действии и в третьем действии. Это называется переиспользованием (reuse или по-русски реюз) кода - когда вместо написания кода с нуля ты берёшь откуда-то уже написанный ранее код (из другого проекта, из другого решения другой задачи, из кода другого автора другого проекта и тому подобного).
Как только ты начнёшь соблюдать эти элементарные правила и строго следовать им, сразу начнёт всё получаться и с вводом, и с циклами, и с красивым выводом. Всё это связано с тем, что хорошие алгоритмы вставляются в хорошие алгоритмы. Но хорошие алгоритмы пишутся по строгим правилам.
tags: algorithm module reuse
Отредактировано py.user.next (Июль 4, 2020 01:10:14)