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

Каква е Python Функция len()?
- len () функцията е вградена функция в PythonМожете да използвате len(), за да получите дължината на даден низ, масив, списък, кортеж, речник и други обекти. Тъй като броят на елементите се съхранява в обекта, а не се преизчислява всеки път, len() ви помага бързо да проверите размера и да оптимизирате производителността на вашата програма.
Синтаксис на Python len() функция
- Python Функцията len() използва следния синтаксис:
len(value)
параметри
стойност: Даденият обект — например низ, списък, кортеж, речник или множество — чиято дължина искате да измерите.
Връщана стойност
len() връща цяло число, т.е. броя на знаците в низ или броя на елементите в масив, списък или колекция. Точното значение на върнатата стойност зависи от типа на обекта, който ѝ е предаден:
- Струни: len() връща броя на знаците в низа, включително препинателни знаци, интервали и всички видове специални знаци.
- празно: Празен низ или празна колекция връща 0, защото съдържа нула елементи.
- Колекции: Вградената функция len() връща броя на елементите, съхранени в колекция.
- TypeError: len() зависи от типа на обекта, който ѝ е предаден. Предаването на стойност, която няма дължина, като например цяло число, поражда TypeError.
- Речник: За речник всяка двойка ключ-стойност се брои за една единица, така че len() връща броя на ключовете.
Примери за Python len() функция
Следните примери показват как да използвате функцията len(), за да намерите дължината на различни Python обекти, включително низ, списък, кортеж, речник и масив.
Пример 1: Как да намерим дължината на низ
# testing len()
str1 = "Welcome to Guru99 Python Tutorials"
print("The length of the string is :", len(str1))
Изход:
The length of the string is : 35
Пример 2: Как да намерим дължината на списък
# to find the length of the list
list1 = ["Tim","Charlie","Tiffany","Robert"]
print("The length of the list is", len(list1))
Изход:
The length of the list is 4
Пример 3: Как да се намери дължината на кортеж
# to find the length of the tuple
Tup = ('Jan','feb','march')
print("The length of the tuple is", len(Tup))
Изход:
The length of the tuple is 3
Пример 4: Как да се намери дължината на речник
# to find the length of the Dictionary
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print("The length of the Dictionary is", len(Dict))
Изход:
The length of the Dictionary is 4
Пример 5: Как да намерим дължината на масив
# to find the length of the array
arr1 = ['Tim','Charlie','Tiffany','Robert']
print("The length of the Array is", len(arr1))
Изход:
The length of the Array is 4
Как да намерим дължината на низ без len() в Python
Функцията len() е най-бързият и най-четлив начин за измерване на низ, но можете да броите знаци и ръчно. Това е често срещано упражнение по време на интервю за програмиране и всеки метод просто преглежда низа, като същевременно увеличава брояча.
Най-често срещаният подход използва for цикъл:
# length of a string without len()
mystr = "Guru99"
count = 0
for char in mystr:
count += 1
print("The length is", count)
Изход:
The length is 6
По-кратък вариант използва функцията sum() с генераторен израз, добавяйки 1 за всеки символ в низа:
mystr = "Guru99"
length = sum(1 for char in mystr)
print("The length is", length)
Изход:
The length is 6
Други начини за броене на символи без len() включват следното:
- Цикъл while, който разделя низа, докато той стане празен, като увеличава брояча с едно число при всяко преминаване.
- Функцията enumerate(), която tracks индекса на всеки символ, докато той се повтаря.
- Рекурсивна функция, която връща 1 плюс дължината на оставащия подниз.
Тези ръчни методи са по-бавни от вградения len(), така че ги запазете за учене или практика по време на интервю. В ежедневния код len() остава най-бързият и ясен вариант.
Как ли Python Функцията len() работи ли вътрешно?
Разбирането на това как работи len() обяснява защо е толкова бърз. Когато извикате len() върху обект, Python не сканира всеки елемент един по един. Вместо това, той извиква специалния метод на обекта __len__(), което означава, че изразът len(x) е еквивалентен на x.__len__().
Вградените контейнери като низове, списъци, кортежи, речници и множества съхраняват собствения си размер като атрибут. Всеки път, когато добавяте или премахвате елемент, Python актуализира този съхранен брой. Когато се извика len(), тя просто прочита тази предварително съхранена стойност и я връща.
Тъй като дължината е вече известна, len() се изпълнява за константно време, записано като O(1). Отнема едно и също време, независимо дали обектът съдържа пет елемента или пет милиона. Можете също да добавите поддръжка на len() към вашите собствени класове, като дефинирате метод __len__(), който връща цяло число:
class Team:
def __len__(self):
return 11
squad = Team()
print(len(squad))
Изход:
11
Този дизайн е причината len() да се държи последователно във всеки вграден тип, както и във всеки потребителски обект, който имплементира метод __len__().
» Научете повече за Python Стрингови методи
