Сообщить об ошибке.

Функция len() в Python, количество элементов объекта

Количество элементов в последовательности или коллекции

Синтаксис:

len(s)

Параметры:

  • s - последовательность или коллекция.

Возвращаемое значение:

Описание:

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

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

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

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

Примечание. Встроенная функция len() НЕ РАБОТАЕТ с итераторами и генераторами.

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

Что можно подсчитать:

  • число элементов в списке;
  • число элементов в кортеже;
  • число символов в строке (длина строки);
  • количество байтов в строке;
  • число элементов в множестве;
  • число пар ключ-значение в словаре;

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

# подсчет количества элементов списка
>>> mylist = ['apple', 'banana', 'cherry']
>>> len(mylist)
# 3

Подсчет количества символов в строке (длина строки).

# подсчет символов в строке
>>> string = 'Hello'
>>> len(string)
# 5

>>> len('абракадабра')
# 11

Подсчет количества байтов в строке.

# подсчет символов в строке
>>> line_en = 'Hello'.encode('utf-8')
>>> line_ru = 'Привет'.encode('utf-8')
>>> len(line_en)
# 5
>>> len(line_ru)
# 12

Подсчет количества ключей словаря.

# подсчет количества ключей словаря.
>>> d = {'a': 1, 'b': 1, 'c': 1, 'd': 1}
>>> keys = list(d)
>>> len(keys)
# 4

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

Проверка списка на дублирующие значения:

Чтобы проверить уникальность значений списка достаточно сравнить количество элементов списка с количеством элементов множества этого списка. Используя тот факт, что множество set() содержит только уникальные элементы.

>>> lst = [1, 2, 3, 4, 5, 6]
# список с уникальными значениями
>>> len(lst) == len(set(lst))
# True
>>> lst.append(3)
>>> lst
# [1, 2, 3, 4, 5, 6, 3]

# в списке есть повторы
>>> len(lst) == len(set(lst))
# False

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

>>> mystr = "Привет Python!"
>>> underline = '-' * len(mystr)
>>> print(f'{mystr}\n{underline}')
# Привет Python!
# --------------

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

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

>>> mylist = ['apple', 'banana', 'cherry', 'pear', 'plum']
>>> for i in range(len(mylist)):
...     print(i, mylist[i])
... 
# 0 apple
# 1 banana
# 2 cherry
# 3 pear
# 4 plum

Использование встроенной функции enumerate() для получения индексов элементов:

>>> mylist = ['apple', 'banana', 'cherry', 'pear', 'plum']
>>> for i, item in enumerate(mylist):
...     print(i, item)
... 
# 0 apple
# 1 banana
# 2 cherry
# 3 pear
# 4 plum

По индексам последовательности, конечно удобнее итерироваться при помощи функции enumerate().

Подсчет количества цифр в числе (длина числа)

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

Для получения строкового представления объектов float и int, применим к ним функцию str.

Пример получения длины целого числа:

# получение длины целого числа 
>>> x = 1235412687
>>> str_x = str(x)
>>> str_x
# '1235412687'
>>> num_x = len(str_x)
>>> num_x
# 10

Так как вещественные числа в Python имеют запятую, то количество цифр в числе float будет на 1 меньше, а именно len(str(float)) - 1.

Пример получения длины вещественного числа:

# получение длины вещественного числа 
>>> x = 0.1230541287
# запишем преобразования короче
>>> num_x = len(str(x)) - 1
>>> num_x
# 11

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

Пример подсчета уникальных цифр в числах float и int:

# получение кол-ва уникальных цифр целого числа 
>>> x = 1235412687
# получаем строковое представление 
>>> str_x = str(x)
# получаем множество уникальных цифр числа
>>> set_x = set(str_x)
# {'1', '5', '7', '8', '6', '2', '4', '3'}

# считаем кол-во уникальных цифр
>>> num_x = len(set_x)
>>> num_x
# 8

# для получения кол-ва уникальных цифр 
# числа `float` сделаем запись короче 
>>> x = 0.1230541287
# количество уникальных цифр числа `float`
# будет на 1 меньше, т.к. число имеет разделитель
>>> num_x = len(set(str(x))) - 1
# 8