Python len() Funkcija: Kako pronaći duljinu niza

⚡ Pametni sažetak

Python len() je ugrađena funkcija koja vraća broj elemenata u objektu, kao što su znakovi u nizu ili elementi u listi, n-torci, rječniku ili skupu.

  • 🔢 Sintaksa: len(objekt) uzima jedan argument i vraća cijeli broj, ukupan broj elemenata koje sadrži.
  • 🔠 Žice: Za niz znakova, len() broji svaki znak, uključujući razmake, znamenke i interpunkcijske znakove.
  • ???? zbirke: len() mjeri veličinu lista, tuplesa, rječnika, skupova i raspona objekata na isti način.
  • Performance: len() se izvršava u konstantnom vremenu O(1) jer Python pohranjuje svaku duljinu objekta kao atribut.
  • ???? TypeError: Pozivanje len() na cijelom broju ili None izaziva grešku TypeError, budući da ti tipovi nemaju duljinu.
  • 🤖 AI pomoć: AI asistenti za kodiranje generiraju len() provjere, a cjevovodi strojnog učenja koriste len() za dopunjavanje i grupiranje sekvenci.

Python len() funkcija

Što je Python Funkcija len()?

The len () funkcija je ugrađena funkcija u PythonPomoću funkcije len() možete dobiti duljinu zadanog niza, polja, liste, n-torke, rječnika i drugih objekata. Budući da se broj elemenata pohranjuje na objektu, a ne izračunava svaki put, funkcija len() pomaže vam da brzo provjerite veličinu i optimizirate performanse programa.

Sintaksa Python len() funkcija

The Python Funkcija len() koristi sljedeću sintaksu:

len(value)

Parametri

vrijednost: Zadani objekt - kao što je niz znakova, lista, n-torka, rječnik ili skup - čiju duljinu želite izmjeriti.

Povratna vrijednost

len() vraća cijeli broj, tj. broj znakova u nizu ili broj elemenata u polju, listi ili kolekciji. Točno značenje povratne vrijednosti ovisi o vrsti objekta koji joj je proslijeđen:

  • Žice: len() vraća broj znakova u nizu, uključujući interpunkcijske znakove, razmake i sve vrste posebnih znakova.
  • Prazan: Prazan niz ili prazna kolekcija vraća 0 jer sadrži nula elemenata.
  • zbirke: Ugrađena funkcija len() vraća broj elemenata pohranjenih u kolekciji.
  • TypeError: len() ovisi o tipu objekta koji mu se prosljeđuje. Prosljeđivanje vrijednosti koja nema duljinu, poput cijelog broja, izaziva grešku TypeError.
  • Rječnik: Za rječnik, svaki par ključ-vrijednost računa se kao jedna jedinica, pa len() vraća broj ključeva.

Primjeri Python len() funkcija

Sljedeći primjeri pokazuju kako koristiti funkciju len() za pronalaženje duljine različitih Python objekte, uključujući niz znakova, listu, n-torku, rječnik i niz.

Primjer 1: Kako pronaći duljinu niza znakova

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

Izlaz:

The length of the string  is : 35

Primjer 2: Kako pronaći duljinu popisa

# to find the length of the list

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

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

Izlaz:

The length of the list is 4

Primjer 3: Kako pronaći duljinu tuplea

# to find the length of the tuple

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

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

Izlaz:

The length of the tuple is 3

Primjer 4: Kako pronaći duljinu rječnika

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

Izlaz:

The length of the Dictionary is 4

Primjer 5: Kako pronaći duljinu niza

# to find the length of the array

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

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

Izlaz:

The length of the Array is 4

Kako pronaći duljinu niza bez len() u Python

Funkcija len() je najbrži i najčitljiviji način mjerenja niza znakova, ali znakove možete brojati i ručno. Ovo je uobičajena vježba u intervjuu za programiranje, a svaka metoda jednostavno prolazi kroz niz dok povećava brojač.

Najčešći pristup koristi for petlju:

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

Izlaz:

The length is 6

Kraća opcija koristi funkciju sum() s izrazom generatora, dodajući 1 za svaki znak u nizu:

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

Izlaz:

The length is 6

Drugi načini brojanja znakova bez len() uključuju sljedeće:

  • White petlja koja reže niz dok se ne isprazni, povećavajući brojač u svakom prolazu.
  • Funkcija enumerate(), koja tracks indeks svakog znaka tijekom iteracije.
  • Rekurzivna funkcija koja vraća 1 plus duljinu preostalog podniza.

Ove ručne metode su sporije od ugrađene funkcije len(), stoga ih sačuvajte za učenje ili vježbu na razgovoru za posao. U svakodnevnom kodu, len() ostaje najbrža i najjasnija opcija.

Kako Python Radi li funkcija len() interno?

Razumijevanje načina rada funkcije len() objašnjava zašto je tako brza. Kada pozovete len() na objektu, Python ne skenira svaki element jedan po jedan. Umjesto toga, poziva posebnu metodu objekta __len__(), što znači da je izraz len(x) ekvivalentan x.__len__().

Ugrađeni spremnici poput nizova znakova, popisa, n-torki, rječnika i skupova pohranjuju vlastitu veličinu kao atribut. Svaki put kada dodate ili uklonite element, Python ažurira ovaj pohranjeni broj. Kada se pozove len(), on jednostavno čita tu unaprijed pohranjenu vrijednost i vraća je.

Budući da je duljina već poznata, len() se izvršava u konstantnom vremenu, zapisano kao O(1). Potrebno je isto vrijeme bez obzira sadrži li objekt pet ili pet milijuna stavki. Također možete dodati podršku za len() vlastitim klasama definiranjem metode __len__() koja vraća cijeli broj:

class Team:
    def __len__(self):
        return 11

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

Izlaz:

11

Zbog ovog dizajna, len() se ponaša konzistentno u svakom ugrađenom tipu, kao i u svakom prilagođenom objektu koji implementira metodu __len__().

" Nauči više o Python Metode niza

Pitanja i odgovori

Da. len() broji svaki znak u nizu, uključujući razmake, tabulatore, znamenke i interpunkcijske znakove. Na primjer, len("Guru 99!) vraća 8, jer se razmak i uskličnik računaju kao jedan znak.

len() vraća 0 za prazan niz, jer ne sadrži znakove. Funkcija len() nije indeksirana s nulom; broji elemente počevši od jedan, pa len(“a”) vraća 1, a len(“”) vraća 0.

Cijeli brojevi ne pohranjuju više elemenata, pa nemaju duljinu. Pozivanjem funkcije len(123) javlja se greška „TypeError: objekt tipa 'int' nema len()“. Prvo pretvorite broj pomoću funkcije len(str(123)) kada želite prebrojati njegove znamenke.

Da. Za rječnik, len() vraća broj parova ključ-vrijednost, brojeći svaki par jednom. Za skup, len() vraća broj jedinstvenih elemenata, budući da skup automatski odbacuje duplicirane vrijednosti.

len() vraća broj Unicode kodnih točaka u nizu, tako da se većina slova i simbola s naglascima računa kao jedna. Međutim, neki emoji i kombinirani znakovi koriste nekoliko kodnih točaka, pa len() može prijaviti više od jedne za njih.

Proslijedite len kao ključ funkciji max(): max(riječi, ključ=len) vraća najduži niz znakova na popisu. Slično tome, min(riječi, ključ=len) vraća najkraći. Time se izbjegava pisanje ručne petlje za usporedbu svake duljine.

Cjevovodi strojnog učenja stalno koriste len() - za provjeru veličina skupova podataka, potvrdu podudaranja značajki i oznaka te mjerenje duljina sekvenci. Modeli često dopunjuju ili skraćuju tekst na jednak len() tako da serije podataka dijele isti oblik.

Da. GitHub Copilot automatski dovršava len() provjere i broja petlje iz kratkog komentara koji opisuje vaš cilj. Agentic AI asistenti idu dalje, pišući logiku za validaciju duljine, dodajući zaštitne klauzule protiv TypeErrora i pokrećući testove umjesto vas.

Sažmite ovu objavu uz: