Python len() Funkce: Jak zjistit délku řetězce

⚡ Chytré shrnutí

Python len() je vestavěná funkce, která vrací počet položek v objektu, například znaky v řetězci nebo prvky v seznamu, n-tici, slovníku nebo množině.

  • 🔢 Syntaxe: Funkce len(object) přijímá jeden argument a vrací celé číslo, celkový počet prvků, které obsahuje.
  • 🔠 Řetězce: V případě řetězce počítá len() všechny znaky, včetně mezer, číslic a interpunkčních znamének.
  • ???? Sbírky: Funkce len() měří velikost seznamů, n-tic, slovníků, množin a objektů typu range stejným způsobem.
  • ⚙️ Výkon: Funkce len() běží v konstantním čase O(1), protože Python ukládá délku každého objektu jako atribut.
  • 🚫 Chyba typu: Volání len() pro celé číslo nebo None vyvolá chybu TypeError, protože tyto typy nemají žádnou délku.
  • 🤖 Asistence AI: Asistenti kódování s umělou inteligencí generují kontroly len() a kanály strojového učení používají len() k doplňování a dávkovému doplňování sekvencí.

Python len() Funkce

Co je Python Funkce len()?

Jedno len () funkce je vestavěná funkce v PythonPomocí funkce len() můžete získat délku daného řetězce, pole, seznamu, n-tice, slovníku a dalších objektů. Protože počet prvků je uložen v objektu a není pokaždé přepočítáván, pomáhá vám funkce len() rychle zkontrolovat velikost a optimalizovat výkon vašeho programu.

Syntaxe Python len() Funkce

Jedno Python Funkce len() používá následující syntaxi:

len(value)

parametry

hodnota: Daný objekt – například řetězec, seznam, n-tice, slovník nebo sada – jehož délku chcete změřit.

Návratová hodnota

Funkce len() vrací celé číslo, tj. počet znaků v řetězci nebo počet prvků v poli, seznamu nebo kolekci. Přesný význam návratové hodnoty závisí na typu objektu, který jí je předán:

  • Řetězce: Funkce len() vrací počet znaků v řetězci, včetně interpunkce, mezer a všech druhů speciálních znaků.
  • Prázdný: Prázdný řetězec nebo prázdná kolekce vrací hodnotu 0, protože obsahuje nula prvků.
  • Sbírky: Vestavěná funkce len() vrací počet prvků uložených v kolekci.
  • Chyba typu: Funkce len() závisí na typu objektu, který jí je předán. Předání hodnoty, která nemá žádnou délku, například celého čísla, vyvolá chybu TypeError.
  • Slovník: U slovníku se každý pár klíč-hodnota počítá jako jedna jednotka, takže len() vrací počet klíčů.

Příklady Python len() Funkce

Následující příklady ukazují, jak použít funkci len() k nalezení délky různých Python objekty, včetně řetězce, seznamu, n-tice, slovníku a pole.

Příklad 1: Jak zjistit délku řetězce

# testing len() 
str1 = "Welcome to  Guru99 Python Tutorials"
print("The length of the string  is :", len(str1))

Výstup:

The length of the string  is : 35

Příklad 2: Jak zjistit délku seznamu

# to find the length of the list

list1 = ["Tim","Charlie","Tiffany","Robert"]

print("The length of the list is", len(list1))

Výstup:

The length of the list is 4

Příklad 3: Jak najít délku n-tice

# to find the length of the tuple

Tup = ('Jan','feb','march')

print("The length of the tuple is", len(Tup))

Výstup:

The length of the tuple is 3

Příklad 4: Jak zjistit délku slovníku

# 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))

Výstup:

The length of the Dictionary is 4

Příklad 5: Jak najít délku pole

# to find the length of the array

arr1 = ['Tim','Charlie','Tiffany','Robert']

print("The length of the Array is", len(arr1))

Výstup:

The length of the Array is 4

Jak zjistit délku řetězce bez použití funkce len() v Python

Funkce len() je nejrychlejší a nejčitelnější způsob, jak měřit řetězec, ale znaky můžete počítat i ručně. Toto je běžné cvičení v kódovacím pohovoru a každá metoda jednoduše prochází řetězec a zároveň zvyšuje čítač.

Nejběžnější přístup používá smyčku for:

# length of a string without len()
mystr = "Guru99"
count = 0
for char in mystr:
    count += 1
print("The length is", count)

Výstup:

The length is 6

Kratší možnost používá funkci sum() s generátorovým výrazem, který přidává 1 za každý znak v řetězci:

mystr = "Guru99"
length = sum(1 for char in mystr)
print("The length is", length)

Výstup:

The length is 6

Mezi další způsoby, jak počítat znaky bez funkce len(), patří:

  • Smyčka while, která prořezává řetězec, dokud se nevyprázdní, a při každém průchodu zvyšuje hodnotu čítače.
  • Funkce enumerate(), která tracks index každého znaku během jeho iterace.
  • Rekurzivní funkce, která vrací 1 plus délku zbývajícího podřetězce.

Tyto manuální metody jsou pomalejší než vestavěná funkce len(), takže si je nechte pro učení nebo procvičování pohovorů. V běžném kódu zůstává len() nejrychlejší a nejpřehlednější možností.

Jak to dělá Python Funguje funkce len() interně?

Pochopení fungování funkce len() vysvětluje, proč je tak rychlá. Když voláte funkci len() na objektu, Python Neprohledává každý prvek jeden po druhém. Místo toho volá speciální metodu objektu __len__(), což znamená, že výraz len(x) je ekvivalentní x.__len__().

Vestavěné kontejnery, jako jsou řetězce, seznamy, n-tice, slovníky a množiny, ukládají svou vlastní velikost jako atribut. Pokaždé, když přidáte nebo odeberete prvek, Python aktualizuje tento uložený počet. Když je volána funkce len(), jednoduše přečte tuto předem uloženou hodnotu a vrátí ji.

Protože je délka již známa, funkce len() běží v konstantním čase, zapsaném jako O(1). Trvá to stejně dlouho, ať už objekt obsahuje pět položek nebo pět milionů. Podporu funkce len() můžete také přidat do vlastních tříd definováním metody __len__(), která vrací celé číslo:

class Team:
    def __len__(self):
        return 11

squad = Team()
print(len(squad))

Výstup:

11

Díky tomuto designu se metoda len() chová konzistentně napříč všemi vestavěnými typy a také v jakémkoli vlastním objektu, který implementuje metodu __len__().

" Dozvědět se víc o Python Řetězcové metody

Nejčastější dotazy

Ano. len() počítá všechny znaky v řetězci, včetně mezer, tabulátorů, číslic a interpunkčních znamének. Například len(“Guru 99!“) vrací 8, protože mezera i vykřičník se počítají jako jeden znak.

Funkce len() vrací 0 pro prázdný řetězec, protože neobsahuje žádné znaky. Funkce len() nemá nulový index; počítá prvky počínaje jedničkou, takže len(“a”) vrací 1 a len(“”) vrací 0.

Celá čísla neukládají více položek, takže nemají žádnou délku. Volání len(123) vyvolá chybu „TypeError: objekt typu 'int' nemá len()“. Pokud chcete spočítat číslice čísla, nejprve jej převeďte pomocí len(str(123)).

Ano. Pro slovník vrací len() počet párů klíč-hodnota, přičemž každý pár počítá jednou. Pro množinu vrací len() počet unikátních prvků, protože sada automaticky zahazuje duplicitní hodnoty.

Funkce len() vrací počet kódových bodů Unicode v řetězci, takže většina písmen a symbolů s diakritikou se počítá jako jedna. Některé emoji a kombinované znaky však používají několik kódových bodů, takže funkce len() pro ně může nahlásit více než jeden.

Předejte funkci max() jako klíč řetězec len: max(words, key=len) vrací nejdelší řetězec v seznamu. Podobně min(words, key=len) vrací nejkratší. Tím se zabrání psaní ruční smyčky pro porovnávání jednotlivých délek.

Strojové učení neustále používá funkci len() – ke kontrole velikostí datových sad, ověření shody prvků a popisků a měření délky sekvencí. Modely často doplňují nebo zkracují text na stejnou hodnotu len(), aby dávky dat sdílely stejný tvar.

Ano. GitHub Copilot automaticky dokončuje kontroly len() a počítá smyčky z krátkého komentáře popisujícího váš cíl. Asistenti Agentic AI jdou ještě dál, píší logiku pro validaci délky, přidávají ochranné klauzule proti TypeError a spouštějí testy za vás.

Shrňte tento příspěvek takto: