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