- Функция len() в Pyhton
- Функция len() в действии
- Что собой представляет функция len() в Python?
- Как применяется функция len()
- Использование функции len() со встроенными последовательностями
- Использование функции len() со встроенными коллекциями
- Пример 1. Определение длины коллекции, сгенерированной при помощи модуля random
- Пример 2. Определение количества элементов в словаре
- Использование функции len() с другими встроенными типами данных
- Использование функции len() со сторонними библиотеками
- Пример 1. Использование функции len() с массивом NumPy
- Пример 2. Использование функции len() с Pandas DataFrame
- Использование функции len() в пользовательских классах
- Заключение
- Четыре способа найти длину строки в Python
- Определяем длину строки в Python: способ № 1
- Ищем длину строки в «Питоне»: способ № 2
- Поиск длины строки в Python: способ № 3
- Находим длину строки в Python: способ № 4
Функция 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 строки относят к категории неизменяемых последовательностей, что необходимо помнить при вызове методов и функций. Теперь давайте представим, что у нас есть строка, и нам требуется найти её длину:
Сделать это можно несколькими способами.
Определяем длину строки в Python: способ № 1
Начнём с общеизвестного и наиболее популярного — использования функции len() . Эта встроенная функция возвращает количество символов в исследуемой нами строке, определяя таким образом её длину. Тут всё элементарно, и вы можете проверить код ниже на любом онлайн-компиляторе:
# Находим длину строки в Python с помощью функции len() str = 'otus' print(len(str))
Итогом работы функции станет следующий вывод в терминал:
Ищем длину строки в «Питоне»: способ № 2
Чтобы подсчитать количество символов в строке Python, мы можем воспользоваться циклом for и счётчиком. Тут тоже всё просто, т. к. определение длины происходит путём подсчёта числа итераций.
# Python-код возвращает длину строки def findLen(str): counter = 0 for i in str: counter += 1 return counter str = "otus" print(findLen(str))
Соответственно, наш вывод в консоли тоже будет равен 4.
Поиск длины строки в Python: способ № 3
Теперь давайте воспользуемся циклом while. Мы «нарежем» строку, укорачивая её на каждой итерации, в результате чего получим пустую строку и остановку цикла. А подсчёт количества итераций снова позволит нам вывести в терминал искомую длину.
# Python-код, возвращающий длину строки def findLen(str): counter = 0 while str[counter:]: counter += 1 return counter str = "otus" print(findLen(str))
Находим длину строки в Python: способ № 4
Теперь воспользуемся строковым методом объединения. Он принимает итеративный элемент, возвращая строку, являющуюся объединением строк в итерируемом нами элементе. Разделитель между элементами — исходная строка, для которой и вызывается метод. Применение метода объединения с последующим подсчётом объединённой строки в исходной строке тоже позволит нам получить длину строки на «Питоне».
# Python-код, возвращающий длину строки def findLen(str): if not str: return 0 else: some_random_str = 'py' return ((some_random_str).join(str)).count(some_random_str) + 1 str = "otus" print(findLen(str))
Как и во всех примерах выше, в консоль выведется количество символов в строе ‘otus’, равное 4. Вот и всё!
Хотите знать про Python гораздо больше? Записывайтесь на наш курс для продвинутых разработчиков: