Python len() Функция: Как да намерите дължината на низа

⚡ Умно обобщение

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

  • 🔢 Синтаксис: len(object) приема един аргумент и връща цяло число, общия брой елементи, които съдържа.
  • 🔠 Струни: За низ, len() брои всеки символ, включително интервали, цифри и препинателни знаци.
  • 📦 Колекции: len() измерва размера на списъци, кортежи, речници, множества и обекти тип range по същия начин.
  • Изпълнение: len() се изпълнява за константно време O(1), защото Python съхранява дължината на всеки обект като атрибут.
  • 🚫 TypeError: Извикването на len() върху цяло число или None поражда TypeError, тъй като тези типове нямат дължина.
  • 🤖 AI помощ: Асистентите за кодиране с изкуствен интелект генерират len() проверки, а конвейерите за машинно обучение използват 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 Стрингови методи

Въпроси и Отговори

Да. len() брои всеки символ в низ, включително интервали, табулации, цифри и препинателни знаци. Например, len(“Guru 99!“) връща 8, защото интервалът и удивителният знак се броят за един символ.

len() връща 0 за празен низ, защото той не съдържа символи. Функцията len() не е с нулев индекс; тя брои елементи, започвайки от едно, така че len(“a”) връща 1, а len(“”) връща 0.

Целите числа не съхраняват множество елементи, така че нямат дължина. Извикването на len(123) поражда грешка „TypeError: обект от тип 'int' няма len()“. Първо преобразувайте числото с len(str(123)), когато искате да преброите цифрите му.

Да. За речник, len() връща броя на двойките ключ-стойност, като брои всяка двойка веднъж. За множество, len() връща броя на уникалните елементи, тъй като множеството автоматично изхвърля дублиращите се стойности.

len() връща броя на Unicode кодовите точки в низ, така че повечето букви и символи с ударения се броят за едно. Някои емоджита и комбинирани знаци обаче използват няколко кодови точки, така че len() може да докладва повече от една за тях.

Предайте len като ключ на функцията max(): max(words, key=len) връща най-дългия низ в списъка. По подобен начин min(words, key=len) връща най-късия. Това избягва писането на ръчен цикъл за сравняване на всяка дължина.

Машинните обучителни конвейери използват len() постоянно — за да проверяват размерите на наборите от данни, да потвърждават, че характеристиките и етикетите съвпадат, и да измерват дължините на последователностите. Моделите често допълват или отрязват текста до равен len(), така че партидите данни да споделят една и съща форма.

Да. GitHub Copilot автоматично довършва len() проверките и брои цикли от кратък коментар, описващ вашата цел. Agentic AI асистентите отиват по-далеч, като пишат логика за валидиране на дължината, добавят предпазни клаузи срещу TypeError и изпълняват тестовете ви вместо вас.

Обобщете тази публикация с: