Python функция подсчета количества

Функция len() в Pyhton

Функция len() в Python принимает объект в качестве аргумента и возвращает длину этого объекта. Например, функция len() может возвращать количество элементов в списке.

Синтаксис функции len() имеет следующий вид:

Функция len() принимает один аргумент, который может быть:

  • последовательностью — строки, байтовые строки, итерируемые последовательности типа списка или кортежа;
  • коллекцией — словари, множества, замороженные множества и так далее.

А возвращает len() количество элементов в объекте, который передан в качестве аргумента.

Если мы не передаем никакого аргумента или аргумент имеет недопустимый тип, это вызовет исключение TypeError .

Ошибка TypeError возникает, когда тип данных не является коллекцией или последовательностью. Например, логическое значение, int и т. д.

print(len(False)) print(len(1212))
TypeError: object of type 'bool' has no len() TypeError: object of type 'int' has no len()

Функция len() в действии

Давайте найдем количество элементов внутри списка, иными словами — длину списка.

fruits = ['Bananas', 'Apples', 'Mangoes'] # вычисляем длину списка фруктов l = len(fruits) # выводим длину списка на экран print(l) # Результат: # 3

Что собой представляет функция len() в Python?

len() — это встроенная функция Python, которая принимает объект в качестве аргумента и возвращает его длину. Например, она может возвращать количество элементов в списке Python.

Help on built-in function len in module builtins: len(obj, /) Return the number of items in an object.

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

Как применяется функция len()

Использование функции len() со встроенными последовательностями

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

# Строка с именем name = "Andrew" print(len(name)) # 6 # Список продуктов food_items = ["Pizza", "Burger", "French Fries"] print(len(food_items)) # 3 # Кортеж с координатами coordinates = (51, 24) print(len(coordinates)) # 2 # Пустая строка print(len("")) # 0 # Пустой список print(len([])) # 0 # Пустой кортеж print(len()) # 0

Объяснение кода:

В приведенном выше фрагменте кода, чтобы найти длину строки name , списка food_items и кортежа coordinates , мы используем len() . Все эти три типа данных являются допустимыми аргументами для функции len() . Данная функция возвращает целое число, так как подсчитывает количество элементов в объекте, который передается ей в качестве аргумента. Если аргумент является пустой последовательностью, функция len() возвращает 0 .

Для создания последовательностей в определенном диапазоне мы также можем использовать функцию range() . Данная функция не хранит свои значения, а генерирует их по мере необходимости. Однако мы можем найти длину такой последовательности при помощи функции len() .

print(len(range(1, 10))) # Результат: # 9

Объяснение кода:

Этот диапазон чисел включает целые числа от 1 до 9 (10 исключается). Мы можем задавать длину объекта функции range() , используя ее аргументы start , stop и step .

Использование функции len() со встроенными коллекциями

Коллекции в Python — это типы данных, построенные на базе контейнеров. Это списки, множества, кортежи и словари. Все коллекции имеют определенные характеристики, основанные на их объявлении и использовании в программе. Например, списки объявляются в квадратных скобках. Они изменяемы, хранят повторяющиеся значения, а к их элементам можно обращаться при помощи индексов.

Пример 1. Определение длины коллекции, сгенерированной при помощи модуля random

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

import random # Создаем список из 10 случайных чисел nums = [random.randint(1, 10) for _ in range(10)] print(nums) # Создаем множество, которое содержит только уникальные элементы списка unique = set(nums) # Выводим на экран множество и его длину print(unique) print(len(unique))

Объяснение кода:

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

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

Словарь — это встроенный тип данных в Python, который используется для хранения элементов в виде пар ключ-значение. Когда мы используем словарь в качестве аргумента для len() , функция возвращает количество элементов (пар ключ-значение) в словаре.

# Словарь, содержащий продукты питания print(len()) # Пустой словарь print(len(<>)) # Результат: # 3 # 0

Объяснение кода:

В выводе первым мы получили число 3 . Это означает, что в словаре с продуктами есть три пары ключ-значение. Как и в случае с последовательностями, функция len() возвращает 0 , если аргументом является либо пустой словарь, либо пустое множество.

Использование функции len() с другими встроенными типами данных

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

TypeError: object of type 'bool' has no len() TypeError: object of type 'int' has no len()

Целочисленные, вещественные, логические и сложные типы являются примерами встроенных типов данных, которые нельзя использовать с функцией len() . Функция вызывает TypeError, когда в нее передается аргумент недопустимого типа данных.

Использование функции len() со сторонними библиотеками

Мы также можем использовать функцию len() для объектов из различных сторонних библиотек. В этом разделе мы рассмотрим примеры использования len() с типами данных из двух популярных библиотек — NumPy и pandas.

Пример 1. Использование функции len() с массивом NumPy

Библиотека NumPy используется для выполнения ресурсоемких задач и является строительным блоком для различных типов данных.

Применив функцию NumPy np.array(), мы можем создать объект типа , используя переданный в качестве аргумента список.

import numpy as np nums = np.array([1, 7, 11, 2, 9, 25]) print(type(nums)) print(len(nums)) # Результат: # # 6

Объяснение кода:

Мы создали одномерный массив длины 6 , используя функцию np.array() , и вычислили его тип и длину, используя функции type() и len() соответственно.

Пример 2. Использование функции len() с Pandas DataFrame

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

import pandas as pd # Создаем словарь marks = < "Ash": [60, 75, 90], "Gary": [78, 55, 87], "Max": [47, 96, 85], "Tyson": [68, 88, 69], ># Создаем из словаря датафрейм df = pd.DataFrame(marks, index=["Maths", "Physics", "Chemistry"]) print(df) # Выводим на экран длину датафрейма print(len(df)) # Выводим на экран размеры датафрейма print(df.shape)
Ash Gary Max Tyson Maths 60 78 47 68 Physics 75 55 96 88 Chemistry 90 87 85 69 3 (3, 4)

Объяснение кода:

Ключи нашего словаря, содержащего отметки, представляют собой строки, являющиеся именами студентов. Значение каждого ключа представляет собой список, в котором хранятся оценки по трем предметам: математике, физике и химии.

При создании датафрейма с использованием этого словаря в качестве аргумента в функции pd.DataFrame() мы также должны определить индекс, используя список, содержащий три учебных предмета.

Созданный датафрейм содержит три строки и четыре столбца. Функция len() возвращает количество строк в датафрейме. Pandas DataFrame имеет свойство .shape , которое можно использовать для вывода количества строк и столбцов датафрейма в кортеже из двух элементов.

Использование функции len() в пользовательских классах

Встроенная в Python функция len() вызывает в нашем классе метод с именем __len__() . Такие методы, имеющие двойное подчеркивание в начале и конце имени, называются магическими.

Реализация этого метода позволит вызову len() работать с нашим классом. Если данный метод не будет реализован, вызов функции len() завершится ошибкой AttributeError. Встроенная в Python функция len() вызывает метод .__len__() своего аргумента.

class Order: def __init__(self, count): self.count = count def __len__(self): return self.count myOrder = Order(7) print(len(myOrder)) # Результат: # 7

Объяснение кода:

В вышеприведенной программе есть класс Order с атрибутом count . Мы также реализовали магическую функцию __len__() , которая возвращает общее количество заказов, переданных ей в качестве аргумента. Далее мы создали экземпляр нашего класса с именем myOrder , передав в него аргумент count , равный семи. И при вызове функции len() было возвращено значение данного атрибута.

Заключение

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

Функция len() принимает объект в качестве аргумента и возвращает длину этого объекта.

Функцию len() можно использовать для:

  • встроенных типов данных;
  • типов данных из сторонних библиотек (например Numpy или pandas);
  • заданных пользователем классов (для этого в классе необходимо реализовать магический метод __len__() );

Источник

Как найти количество элементов в объекте 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.

Источник

Читайте также:  Php get header from response
Оцените статью