В этом посте мы рассмотрим, как узнать число элементов в списке 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 с помощью условия или критериев для фильтрации данных.
Удачного обучения!
В этой статье мы рассмотрим, как определить количество элементов в объекте Python и при необходимости подсчитать их сумму. Также увидим, как подсчитать количество вхождений конкретного элемента.
Итак, представим, что у нас есть следующий массив:
По условию задачи мы хотим определить, сколько элементов в данном массиве, и какова сумма всех этих элементов.
В первую очередь, вспомним, что в языке программирования Python существует специальная функция, возвращающая длину списка, массива, последовательности и так далее — это len(x), где x — наша последовательность.
Если разобраться, длина последовательности из чисел — это одновременно и количество самих цифр, поэтому мы можем решить поставленную задачу следующим образом:
print(len(array)) 6 Press any key to continue . . .А для подсчёта суммы можем занести перечисление массива Python в цикл:
array = [6,2,7,4,8,1] sum = 0 for i in range(len(array)): sum = array[i] print(sum)В принципе, вопрос решён. Но, по правде говоря, перебор целочисленного массива с помощью цикла для получения суммы элементов массива — это, всё же, костыль)). Дело в том, что в Python существует встроенная функция sum(). Она вернёт нам сумму без лишних телодвижений.
def main(): array = [1,6,3,8,4,9,25,2] print(sum(array)) if name == 'main': main() 58 Press any key to continue . . .Python: количество вхождений конкретного элемента
Бывает, нам надо подсчитать число вхождений определённых элементов в списке и вернуть найденное значение. Для этого в Python есть метод count(). Вот его синтаксис:
Метод принимает аргумент x, значение которого нас интересует. И возвращает число вхождений интересующего элемента в список:
# объявляем список website_list = ['otus.ru','includehelp.com', 'yandex.by', 'otus.ru'] # подсчитываем вхождения 'otus.ru' count = website_list.count('otus.ru') print('otus.ru found',count,'times.') # подсчитываем вхождения 'yandex.by' count = website_list.count('yandex.by') print('yandex.by found',count,'times.')Итог будет следующим:
otus.ru found 2 times. yandex.by found 1 times.Также этот метод успешно работает и с кортежами:
# объявляем кортеж sample_tuple = ((1,3), (2,4), (4,6)) # условные вхождения (1,2) count = sample_tuple.count((1,2)) print('(1,2) found',count,'times.') # условные вхождения (1,3) count = sample_tuple.count((1,3)) print('(1,3) found',count,'times.')Результат:
(1,2) found 0 times. (1,3) found 1 times.Вот и всё, теперь вы знаете, как подсчитывать количество элементов в списке, массиве, кортеже в Python.
В этой статье вы узнаете о последовательностях в Python и базовых операциях над ними.
Последовательность — это коллекция, элементы которого представляют собой некую последовательность.
На любой элемент последовательности можно ссылаться, используя его индекс, например, s[0]
и s[1]
.
Индексы последовательности начинаются с 0, а не с 1. Поэтому первый элемент — s[0]
, а второй — s[1]
. Если последовательность s
состоит из n
элементов, то последним элементом будет s[n-1]
.
В Python есть встроенные типы последовательностей: списки, байтовые массивы, строки, кортежи, диапазоны и байты. Последовательности могут быть изменяемыми и неизменяемыми.
Изменяемые: списки и байтовые массивы, неизменяемые: строки, кортежи, диапазоны и байты.
Последовательность может быть однородной или неоднородной. В однородной последовательности все элементы имеют одинаковый тип. Например, строки — это однородные последовательности, поскольку каждый элемент строки — символ — один и тот же тип.
А списки — неоднородные последовательности, потому что в них можно хранить элементы различных типов, включая целые числа, строки, объекты и т.д.
Примечание. C точки зрения хранения и операций однородные типы последовательностей более эффективны, чем неоднородные.
Последовательности и итерируемые объекты: разница
Итерируемый объект (iterable) — это коллекция объектов, в которой можно получить каждый элемент по очереди. Поэтому любая последовательность является итерируемой. Например, список — итерируемый объект.
Однако итерируемый объект может не быть последовательностью. Например, множество является итерируемым объектом, но не является последовательностью.
Примечание. Итерируемые объекты — более общий тип, чем последовательности.
Стандартные методы последовательностей
Ниже описаны некоторые встроенные в Python методы последовательностей:
1) Количество элементов последовательности
Чтобы получить количество элементов последовательности, можно использовать встроенную функцию len()
:
len(последовательность)
Пример
cities = ['Санкт-Петербург', 'Новосибирск', 'Москва']
print(len(cities))
Вывод
3
2) Проверка вхождения элемента в последовательность
Чтобы проверить, находится ли элемент в последовательности, можно использовать оператор in
:
элемент in последовательность
Пример 1
Проверим, есть ли 'Новосибирск'
в последовательности cities
.
cities = ['Санкт-Петербург', 'Новосибирск', 'Москва']
print('Новосибирск' in cities)
Вывод
True
Чтобы проверить, отсутсвует ли элемент в последовательности, используется оператор not in
.
Пример 2
Проверим, отсутсвует ли 'Новосибирск'
в последовательности cities
.
cities = ['Санкт-Петербург', 'Новосибирск', 'Москва']
print('Новосибирск' not in cities)
Вывод
False
3) Поиска индекса элемента в последовательности
Чтобы узнать индекс первого вхождения определенного элемента в последовательности, используется метод index()
.
последовательность.index(элемент)
Пример 1
numbers = [1, 4, 5, 3, 5, 7, 8, 5]
print(numbers.index(5))
Вывод
2
Индекс первого появления числа 5 в списке numbers
— 2. Если числа в последовательности нет, Python сообщит об ошибке:
numbers = [1, 4, 5, 3, 5, 7, 8, 5]
print(numbers.index(10))
Вывод
ValueError: 10 is not in list
Чтобы найти индекс вхождения элемента после определенного индекса, можно использовать метод index()
в таком виде:
последовательность.index(элемент, индекс)
Пример 2
В следующем примере возвращается индекс первого вхождения числа 5 после третьего индекса:
numbers = [1, 4, 5, 3, 5, 7, 8, 5]
print(numbers.index(5, 3))
Вывод
4
Чтобы найти индекс вхождения элемента между двумя определенными индексами, можно использовать метод index()
в такой форме:
последовательность.index(элемент, i, j)
Поиск элемента будет осуществляться между i
и j
.
Пример 3
numbers = [1, 4, 5, 3, 5, 7, 8, 5]
print(numbers.index(5, 3, 5))
Вывод
4
4) Слайсинг последовательности
Чтобы получить срез от индекса i
до индекса j
(не включая его), используйте следующий синтаксис:
последовательность[i:j]
Пример 1
numbers = [1, 4, 5, 3, 5, 7, 8, 5]
print(numbers[2:6])
Вывод
[5, 3, 5, 7]
Когда вы «слайсите» последовательность, представляйте, что индексы последовательности располагаются между двумя элементами, как показано на рисунке:
Расширенный слайсинг позволяет получить срез последовательности от индекса i
до j
(не включая его) с шагом k
:
последовательность[i:j:k]
Пример 2
numbers = [1, 4, 5, 3, 5, 7, 8, 5]
print(numbers[2:6:2])
Вывод
[5, 5]
5) Получение максимального и минимального значений из последовательности
Если задан порядок между элементами в последовательности, можно использовать встроенные функции min()
и max()
для нахождения минимального и максимального элементов:
numbers = [1, 4, 5, 3, 5, 7, 8, 5]
print(min(numbers)) # Вывод: 1
print(max(numbers)) # Вывод: 8
6) Объединение (конкатенация) последовательностей
Чтобы объединить две последовательности в одну, используется оператор +
:
последовательность3 = последовательность1 + последовательность2
Пример
east = ['Владивосток', 'Якутск']
west = ['Санкт-Петербург', 'Москва']
cities = east + west
print(cities)
Вывод
['Владивосток', 'Якутск', 'Санкт-Петербург', 'Москва']
Неизменяемые последовательно объединять безопасно. В следующем примере мы доблавяем один элемент к списку west
. И это не влияет на последовательность cities
:
west.append('Благовещенск')
print(west)
print(cities)
Вывод
['Владивосток', 'Якутск', 'Благовещенск']
['Владивосток', 'Якутск', 'Санкт-Петербург', 'Москва']
Однако когда вы работаете с изменяемыми последовательностями, стоит быть внимательными. . В следующем примере показано, как объединить список самого с собой.
city = [['Санкт-Петербург', 900_000]]
cities = city + city
print(cities)
Вывод
[[‘Санкт-Петербург’, 1000000], [‘Санкт-Петербург’, 1000000]]
Поскольку список является изменяемой последовательностью, адреса памяти первого и второго элементов из списка citites
одинаковы:
print(id(cities[0]) == id(cities[1])) # Вывод: True
Кроме того, при изменении значения из исходного списка изменяется и объединенный список:
city[0][1] = 1_000_000
print(cities)
Соберем все вместе:
city = [['Санкт-Петербург', 900_000]]
cities = city + city
print(cities)
print(id(cities[0]) == id(cities[1])) # Вывод: True
city[0][1] = 1_000_000
print(cities)
Вывод
[['Санкт-Петербург', 900000], ['Санкт-Петербург', 900000]]
True
[['Санкт-Петербург', 1000000], ['Санкт-Петербург', 1000000]]
7) Повторение последовательности
Чтобы повторить последовательность несколько раз, используется оператор умножения *
.
В следующем примере строка повторяется 3 раза:
s = 'ха'
print(s*3)
Вывод
хахаха
for i in range(300):
s = i
n = 1
b = 0
while s > n:
s = s - 15
n = n * 5
if n == 125:
print(i)
выводит кучу получившихся значений i
(больше сотни).
Как узнать сколько всего получилось этих значений?
Эникейщик
25.1k7 золотых знаков30 серебряных знаков46 бронзовых знаков
задан 22 фев 2022 в 13:30
1
Создайте переменную, куда будете аккумулировать все значения i
. А в конце исполнения скрипта выведите длину получившегося списка
res = []
for i in range(300):
s = i
n = 1
b = 0
while s > n:
s = s - 15
n = n * 5
if n == 125:
print(i)
res.append(i)
print(f"{len(res)} значений")
Вывод
115 значений
Чтобы получить сумму всех членов списка используйте sum
print(sum(res))
# out
# 12995
ответ дан 22 фев 2022 в 13:35
DmitryDmitry
7,45810 золотых знаков24 серебряных знака52 бронзовых знака
1
Чтобы получить сумму, вы можете создать переменную суммы и приплюсовывать туда i:
total = 0
for i in range(300):
s = i
n = 1
b = 0
while s > n:
s = s - 15
n = n * 5
if n == 125:
total += i
print(total)
Данный код выведет сумму нужных вам элементов.
Если необходимо количество, то также делаем переменную, но приплюсовывать к ней будем единицу (счётчик):
counter = 0
for i in range(300):
s = i
n = 1
b = 0
while s > n:
s = s - 15
n = n * 5
if n == 125:
counter += 1
print(counter)
ответ дан 22 фев 2022 в 13:49
magistarmagistar
8162 серебряных знака13 бронзовых знаков
2
In this article, we will discuss how we get the number of elements in a list.
Example:
Input: [1,2,3,4,5]
Output: 5
Explanation: No of elements in the list are 5Input: [1.2 ,4.5, 2.2]
Output: 3
Explanation: No of elements in the list are 3Input: [“apple”, “banana”, “mangoe”]
Output: 3
Explanation: No of elements in the list are 3
Before getting the Number of Elements in the Python List, we have to create an empty List and store some items into the list.
There are three methods to get the number of elements in the list, i.e.:
- Using Python len( ) function
- Using for loop
- Using operator length_hint function
Using Len() function to Get the Number of Elements
We can use the len( ) function to return the number of elements present in the list.
Python3
elem_list
=
[
1
,
2
,
3
,
4
]
print
(elem_list)
print
(
"No of elements in list are:"
,
len
(elem_list))
Output:
[1, 2, 3, 4] No of elements in list are: 4
Time Complexity: O(1)
Auxiliary Space: O(1)
Using for loop Get the Number of Elements
We can declare a counter variable to count the number of elements in the list using a for loop and print the counter after the loop in Python gets terminated.
Python3
item_list
=
[
1
,
2
,
3
,
4
]
count
=
0
for
i
in
item_list:
count
=
count
+
1
print
(item_list)
print
(
"No of elements in the list are:"
, count)
Output:
[1, 2, 3, 4] No of elements in the list are: 4
Time Complexity: O(n)
Auxiliary Space: O(1)
Using length_hint Get the Number of Elements in a List
Python3
from
operator
import
length_hint
l
=
[
1
,
2
,
3
,
4
]
print
(length_hint(l))
Output:
4
Time Complexity: O(1)
Auxiliary Space: O(1)
Using Sum Get the Number of Elements in a List
Python
elem_list
=
[
1
,
2
,
3
,
4
]
print
(elem_list)
print
(
"No of elements in list are:"
,
sum
(
1
for
i
in
elem_list))
Output:
4
Time Complexity: O(n), where n is the number of elements in the list
Auxiliary Space: O(1)
Using Numpy Library
Note: Install numpy module using command “pip install numpy”
Python3
import
numpy as np
elem_list
=
[
1
,
2
,
3
,
4
]
print
(elem_list)
print
(
"No of elements in list are:"
, np.size(elem_list))
Output:
[1, 2, 3, 4]
No of elements in list are: 4
Time Complexity: O(n), where n is the number of elements in the list
Auxiliary Space: O(1)
Last Updated :
15 Feb, 2023
Like Article
Save Article