Перейти к содержимому

Как посчитать количество цифр в массиве python

  • автор:

Посчитать количество чисел в списке. Python

Для подсчета количества чисел в списке на языке Python можно воспользоваться функцией filter() и функцией len():

numbers = [‘one’, 2, ‘three’, 4, ‘five’]

count_numbers = len(list(filter(lambda x: isinstance(x, int), numbers)))

print(count_numbers) # 2

В данном примере мы создаем список чисел и используем функцию filter(), чтобы отфильтровать только элементы, которые являются целыми числами. Затем мы преобразуем результат filter() в список и применяем функцию len() для подсчета количества элементов в списке. В результате получаем число 2, что означает, что в исходном списке содержится два числа.

Переписать другими словами
Написать сочинение по запросу
Или попробуйте другие режимы нейросети.

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

Наша нейросеть позволяет вам считывать количество чисел в списке без каких-либо сложностей. Просто загрузите ваш список на нашу платформу, и нейросеть пишет текст, указывая сколько цифр в этом списке. Это очень просто и удобно, и значительно экономит ваше время и убавляет затраты на ручной подсчет чисел. Попробуйте нашу нейросеть онлайн и вы не пожалеете о своем выборе.

Нужно посчитать количество чисел, которые больше или меньше заданного

Нужно посчитать количество чисел, которые больше или меньше заданного в списке. Пользователь, соответственно, сам вводит число. Я начала — но как дальше не знаю.

 nomer = input('Введите число: ') sch = input('Считать числа больше заданого или меньше? ') if not (sch == 'больше' or sch == 'меньше'): 

Отслеживать
26.2k 7 7 золотых знаков 31 31 серебряный знак 48 48 бронзовых знаков
задан 17 авг 2019 в 5:42
Анна Аннна Анна Аннна
1 1 1 серебряный знак 5 5 бронзовых знаков
Больше прям до бесконечности?
17 авг 2019 в 5:44
нет, в разумных пределах, на 30-50
17 авг 2019 в 5:46
Пересмотрите еще раз условие задания, количество чисел посчитать можно между двумя заданными.
17 авг 2019 в 5:53
Пусть даны числа a и b, тогда между ними b — a — 1 чисел
17 авг 2019 в 6:01

«Порахувати кількість чисел більших (менших) за вказане число у одновимірному числовому масиві. Користувач сам вводить число і вказує які числа рахувати.»

17 авг 2019 в 6:02

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Пусть дан массив (список) чисел. По нему надо пройтись с помощью цикла for ,проверить условием число (элемент массива) больше (меньше) заданного и при выполнении условия увеличить счетчик:

nomer = int(input()) # Ввод числа с которым сравниваем элементы массива lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] # Массив в котором производим подсчет more_less = input('Введите какие числа считать (more/less):') # Ввод параметра по которому будет производиться сравнение cnt = 0 # Создание счетчика if more_less == 'more': # Проверка значения переменной more_less, если значение more for i in lst: if i> nomer: # ищем элементы массива больше заданного cnt+=1 # при верном условии увеличиваем счетчик else: # иначе, если значение more_less равно less for i in lst: if i< nomer: # ищем элементы массива меньше заданного cnt+=1 # при верном условии увеличиваем счетчик print(cnt) # выводим значение счетчика на экран 

Python: получить количество элементов в списке

Получение количества элементов в списке в Python - обычная операция. Например, вам нужно будет знать, сколько элементов в списке, когда вы его просматриваете. Помните, что списки могут содержать в качестве своих элементов комбинацию целых чисел, чисел с плавающей запятой, строк, логических значений, других списков и т. д:

# List of just integers list_a = [12, 5, 91, 18] # List of integers, floats, strings, booleans list_b = [4, 1.2, "hello world", True] 

Если мы посчитаем элементы list_a , мы получим всего 5 элементов. Если мы сделаем то же самое для list_b , мы получим 4 элемента.

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

Встроенная функция len()

Самый простой способ узнать количество элементов в списке - использовать встроенную Python функцию len() .

Давайте посмотрим на следующий пример:

list_a = ["Hello", 2, 15, "World", 34] number_of_elements = len(list_a) print("Number of elements in the list: ", number_of_elements) 
Number of elements in the list: 5 

Как следует из названия, функция len() возвращает длину списка независимо от типов элементов в нем.

Использование цикла for

Другой способ сделать это - создать функцию, которая просматривает список с помощью цикла for . Сначала мы инициализируем счетчик элементов равным 0, и каждый раз, когда выполняется итерация цикла, счет увеличивается на 1.

Цикл заканчивается, когда он перебирает все элементы, поэтому счетчик будет представлять общее количество элементов в списке:

list_c = [20, 8.9, "Hi", 0, "word", "name"] def get_number_of_elements(list): count = 0 for element in list: count += 1 return count print("Number of elements in the list: ", get_number_of_elements(list_c)) 

Запуск этого кода напечатает:

Number of elements in the list: 6 

Это гораздо более подробное решение по сравнению с функцией len() , но его стоит рассмотреть, поскольку позже в статье мы увидим, что ту же идею можно применить, когда мы имеем дело со списком списков. Кроме того, вы можете захотеть выполнить некоторую операцию либо над самими элементами, либо с операцией в целом, что в данном случае возможно.

Получить количество уникальных элементов в списке

Списки могут состоять из нескольких элементов, включая дубликаты. Если мы хотим получить количество элементов без дубликатов (уникальных элементов), мы можем использовать другую встроенную функцию set() . Эта функция создает объект set , который отклоняет все повторяющиеся значения.

Затем мы передаем это в функцию len() , чтобы получить количество элементов в set :

list_d = [100, 3, 100, "c", 100, 7.9, "c", 15] number_of_elements = len(list_d) number_of_unique_elements = len(set(list_d)) print("Number of elements in the list: ", number_of_elements) print("Number of unique elements in the list: ", number_of_unique_elements) 
Number of elements in the list: 8 Number of unique elements in the list: 5 

Мы видим, что в list_d 8 элементов, 5 из которых уникальны.

Список списков с использованием len()

Во введении мы увидели, что элементы списков могут иметь разные типы данных. Однако списки, в свою очередь, могут иметь списки в качестве своих элементов. Например:

list_e = [[90, 4, 12, 2], [], [34, 45, 2], [9,4], "char", [7, 3, 19]] 

Если мы используем встроенную функцию len() , списки считаются отдельными элементами, поэтому у нас будет:

number_of_elements = len(list_e) print("Number of elements in the list of lists: ", number_of_elements) 
Number of elements in the list of lists: 6 

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

Получить количество элементов в списке, содержащем другие списки

Если мы хотим подсчитать все элементы внутри списка, содержащего другие списки, мы можем использовать цикл for . Мы можем инициализировать переменную count= 0 и просмотреть список. На каждой итерации цикла count увеличивается на длину этого списка.

Для получения длины воспользуемся встроенной функцией len() :

list_e = [[90, 4, 12, 2], [], [34, 45, 2], [9,4], "char", [7, 3, 19]] def get_all_elements_in_list_of_lists(list): count = 0 for element in list_e: count += len(element) return count print("Total number of elements in the list of lists: ", get_all_elements_in_list_of_lists(list_e)) 
Total number of elements in the list of lists: 16 

В этом примере следует отметить несколько важных моментов. Во-первых, на этот раз пустой список не повлиял на общий счет. Это связано с тем, что в каждом цикле мы учитываем длину текущего вложенного списка и, поскольку длина пустого списка равна 0, count увеличивается на 0.

Однако вы можете видеть, что каждый символ строки "char" учитывается в общем количестве элементов. Это связано с тем, что функция len() воздействует на строку, возвращая все ее символы. Мы можем избежать этой ситуации, используя тот же подход, что и в разделе ниже, который также позволит нам иметь элементы, отличные от списков.

Еще один интересный способ сделать то же самое, что и в предыдущем примере, - использовать определение списка:

number_of_elements = sum([len(element) for element in list_e]) 

Эта строка, по сути, делает две вещи. Во-первых, он создает новый список, содержащий длины всех элементов исходного списка. В нашем случае это было бы так [4, 0, 3, 2, 4, 3] . Во-вторых, он вызывает функцию sum() , используя вновь созданный список в качестве параметра, который возвращает общую сумму всех элементов, давая нам желаемый результат.

Вложенные списки

Вложенные списки - это списки, которые являются элементами других списков. Внутри списков может быть несколько уровней:

list_f = [30, 0.9, [8, 56, 22, ["a", "b"]], [200, 3, [5, [89], 10]]] 

Мы видим, что ["a", "b"] содержится в списке [8, 56, 22, ["a", "b"]] , который, в свою очередь, содержится в основном списке [30, 0.9,[200, 3, [5, [89], 10]]] .

Опять же, мы инициализируем переменную count равной 0. Если мы хотим получить общее количество элементов во вложенном списке, нам сначала нужно проверить, является ли элемент списком или нет. Если это так, мы выполняем цикл внутри списка и рекурсивно вызываем функцию до тех пор, пока не останутся вложенные списки. Все элементы, кроме списков (целые числа, строки и т.д.), увеличивают счетчик на 1.

Обратите внимание, что это также решение проблем, вызванных предыдущим подходом.

Давайте посмотрим на код для подсчета элементов во вложенных списках:

list_f = [30, 0.9, [8, 56, 22, ["a", "hello"]], [200, 3, [5, [89], 10]]] def get_elements_of_nested_list(element): count = 0 if isinstance(element, list): for each_element in element: count += get_elements_nested_list(each_element) else: count += 1 return count print("Total number of elements in the nested list: ", get_elements_of_nested_list(list_f)) 

Запуск этого кода даст нам:

Total number of elements in the nested list: 12 

Обратите внимание, что мы использовали встроенную функцию isinstance() , которая проверяет, является ли первый аргумент экземпляром класса, заданного вторым аргументом. В приведенной выше функции он проверяет, является ли элемент списком.

Первый элемент является целым числом 30 , поэтому функция переходит к блоку else и увеличивает счетчик на 1. Когда мы добираемся до [8, 56, 22, ["a", "hello"]] , функция распознает список и рекурсивно просматривает его, чтобы проверить наличие других списков.

Вывод

Мы увидели, что в зависимости от типа списка, который у нас есть, есть разные способы получить количество элементов. len() это определенно самая быстрая и простая функция, если у нас есть плоские списки.

При использовании вложенных списков элементы внутри списков не учитываются len() . Для этого нам нужно перебрать весь список.

Подсчет количества определенного элемента в ndarray

Python counting specific elements in an array.

В процессе работы с numpy библиотекой в Python, часто возникает необходимость подсчитать количество определенных элементов в массиве. Например, имеется массив, содержащий некоторые элементы:

import numpy as np arr = np.array([2, 3, 2, 2, 5, 3, 2, 4, 5, 2, 5, 5, 5])

И задача состоит в том, чтобы подсчитать количество вхождений элемента 2 в данный массив.

Попытка использовать метод count приводит к ошибке, поскольку данный метод отсутствует в классе numpy.ndarray :

arr.count(2)
AttributeError: 'numpy.ndarray' object has no attribute 'count'

Вместо этого, можно использовать функцию numpy.count_nonzero() , которая подсчитывает количество ненулевых элементов в массиве. Для подсчета количества определенного элемента в массиве, можно сначала преобразовать массив в булевый, где True обозначает места, где находится интересующий нас элемент, а False — все остальные. Затем применить numpy.count_nonzero() к получившемуся массиву.

Пример подсчета количества элементов 2 в массиве arr :

import numpy as np arr = np.array([2, 3, 2, 2, 5, 3, 2, 4, 5, 2, 5, 5, 5]) # Преобразование массива в булев bool_arr = (arr == 2) # Подсчет количества искомых элементов count = np.count_nonzero(bool_arr) print(count) # Выводит: 5

Таким образом, с помощью функции numpy.count_nonzero() можно подсчитать количество определенных элементов в массиве типа ndarray .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *