Рубрики
Без рубрики

Python: Как считать элементы в списке, соответствующих условию?

Я наткнулся на этот вопрос, просмотра через Stackoverflow, и оно заставило меня думать: что лучше всего подсчитать количество элементов в списке, который соответствует определенному условию? Можете ли вы обобщить этот путь к общим условиям (например, X> 3) и регулярных выражениях (например,. * ‘)? https://youtu.be/nowga4grjfs Краткий ответ: Вы можете посчитать … Python: Как подсчитать элементы в списке, соответствующих условию? Читать далее “

Автор оригинала: Chris.

Я наткнулся на этот вопрос, просмотра через Stackoverflow, и оно заставило меня думать: что лучше всего подсчитать количество элементов в списке, который соответствует определенному условию? Можете ли вы обобщить этот путь к общим условиям (например, x> 3 ) и регулярные выражения (например, 'A. *' )?

Краткий ответ: вы можете подсчитать количество элементов x что соответствует определенному Состояние (x) Используя экспрессию одноклассника сумма (условие (x) для x в lst) Отказ Это создает выражение генератора, которое возвращает Истинный Для каждого элемента, который удовлетворяет условию и Ложь иначе. Поскольку Истинный а также Ложь Значения представлены ценными ценностями 1 и 0, вы получаете количество сопоставленных элементов, суммируя итоговим.

Попробуйте сами с помощью интерактивного кода Shell:

В случае, если интерпретатор браузера не отображается в вашем браузере, вот код RAW Python:

## FRAMEWORK FOR CONDITIONAL COUNT ##

# Define any condition here
def condition(x):
  return x > 10

# Create the list
lst = [10, 11, 42, 1, 2, 3]

# Count the number of matching elements
print(sum(condition(x) for x in lst))
# What's the output?

Статьи по Теме:

  • Списки Python – Ultimate Guide
  • Методы списка Python
  • Список списка Python ()

Список Python Count с условием

Как вы можете подсчитать элементы при определенном состоянии в Python? Например, что, если вы хотите посчитать все четные значения в списке? Или все простые числа? Или все строки, которые начинаются с определенного персонажа? Есть несколько способов выполнить это, давайте обсудим их один за другим.

Скажем, у вас есть условие для каждого элемента х Отказ Давайте сделаем это функцией с именем Состояние (x) Отказ Вы можете определить любое условие, которое вы хотите, просто положите его в свою функцию. Например, это условие возвращает true для всех элементов, которые больше, чем целое число 10:

def condition(x):
    return x > 10


print(condition(10))
# False

print(condition(2))
# False

print(condition(11))
# True

Но вы также можете определить более сложные условия, такие как проверка, если они являются простыми числами.

Список Python считай, если

Как вы можете посчитать элементы списка, если условие будет выполнено?

Ответ должен использовать простой выражение генератора сумма (условие (x) для x в lst) :

>>> def condition(x):
	return x>10

>>> lst = [10, 11, 42, 1, 2, 3]
>>> sum(condition(x) for x in lst)
2

Результат указывает на то, что есть два элемента, которые больше 10. Вы использовали выражение генератора, которое возвращает итератор логии. Обратите внимание, что логический Правда представлено целочисленным значением 1 и логией Ложь Представляется целочисленным значением 0. Вот почему вы можете просто рассчитать сумму по всем лоянам, чтобы получить количество элементов, для которых удерживается состояние.

Список Python считается больше/меньше

Если вы хотите определить количество элементов, которые больше или меньше, чем указанное значение, просто измените условие в этом примере:

>>> def condition(x):
	return x>10

>>> lst = [10, 11, 42, 1, 2, 3]
>>> sum(condition(x) for x in lst)
2

Например, чтобы найти количество элементов, меньше 5, используйте условие X <5 в выражении генератора:

>>> lst = [10, 11, 42, 1, 2, 3]
>>> sum(x<5 for x in lst)
3

Список Python Count Zero/ненулевой

Чтобы подсчитать количество нулей в данном списке, используйте list.Count (0) Способ вызова.

Чтобы подсчитать количество нешен в данном списке, вы должны использовать Условный подсчет Как обсуждалось ранее:

def condition(x):
    return x!=0

lst = [10, 11, 42, 1, 2, 0, 0, 0]
print(sum(condition(x) for x in lst))
# 5

Список Python Count Lambda + карта

Альтернативой состоит в том, чтобы использовать комбинацию карты и функции лямбда.

Статьи по Теме:

  • [Полное руководство] Функция карты : Манипулирует каждый элемент в итерателе.
  • [Полное учебное пособие] Функция лямбда Создает анонимную функцию.

Вот код:

>>> sum(map(lambda x: x%2==0, [1, 2, 3, 4, 5]))
2

Вы считаете количество даже целых чисел в списке.

  • Функция лямбда возвращает значение правды для данного элемента х Отказ
  • Функция карты преобразует каждый элемент списка в логическое значение (1 или 0).
  • Функция суммы суммирует «1».

Результатом является количество элементов, для которых условие оценивается на Правда Отказ

Список Python Count Regex/Count Matchs

Учитывая список строк. Как вы можете проверить, сколько элементов списка совпадает с определенным рисунком Regex? (Если вам нужен переподготовка к регулярным выражениям Python, посмотрите, как My Ultimate Guide по этому BLO G – это действительно Ultimate!)

  • Список lst струнных элементов
  • Шаблон P быть сопоставленным против струн в списке.

Решение : Используйте концепцию выражений генератора с помощью Ternary Operator.

Статьи по Теме:

  • Мастер Тернарный оператор.
  • Уменьшение рассмотрения главного списка.

Вот код:

>>> import re
>>> p = 'a...e'
>>> lst = ['annie', 'alice', 'apex']
>>> sum(1 if re.match(p, x) else 0 for x in lst)
2

Список Python считать подстановочный знак

Вы хотите считать все строковые вхождения данного префикса (например, префикс «SUS» для струн «Сьюзи» , «SUSY» , «SUSI» )?

Решение : Опять же, вы можете использовать концепцию выражений генератора с помощью Ternary Operator.

Статьи по Теме:

  • Мастер Тернарный оператор.
  • Уменьшение рассмотрения главного списка.

Вот код для этого, используя оператор подстановки в шаблоне, чтобы подсчитать все вхождения этой картины в списке.

>>> import re
>>> lst = ['Susi', 'Ann', 'Susanne', 'Susy']
>>> pattern = 'Sus.*'
>>> frequency = sum(1 if re.match(pattern, x) else 0 for x in lst)
>>> print(frequency)
3

Выражение генератора дает кучу 1s и 0s – первое, если элемент списка начинается с префикса «Sus» И последнее, если это не так. Суммируя всеми элементами, вы получаете количество совпадений оператора подстановки.

Куда пойти отсюда?

Вы узнали, как вы можете получить количество элементов, которые соответствуют определенному условию. Это может быть логическое состояние или даже регулярное выражение – структура остается прежней.

Хотите ускорить свою эффективность обучения? Вы хотите работать с комфорта вашего дома? Вы хотите комфортно жить, кодируя 3-5 часов для клиентов в Интернете?

Затем присоединитесь к My Python Freelancer Program и возьмите свои первые шаги в сторону шести фигур и достижение ваших практических кодовых проектов в кратчайшие сроки!

Вы все еще не уверены? Посмотрите на бесплатное программное обеспечение Dev Webinar Webinar сначала. Это весело, и вам не нужно предаваться! 😊.

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.