Python Funkcja len(): Jak znaleźć długość łańcucha

⚡ Inteligentne podsumowanie

Python len() to wbudowana funkcja, która zwraca liczbę elementów obiektu, na przykład znaków w ciągu lub elementów listy, krotki, słownika lub zestawu.

  • 🔢 Składnia: len(object) przyjmuje pojedynczy argument i zwraca liczbę całkowitą, będącą całkowitą liczbą zawartych w nim elementów.
  • 🔠 Ciągi: W przypadku ciągu znaków funkcja len() zlicza każdy znak, łącznie ze spacjami, cyframi i znakami interpunkcyjnymi.
  • 📦 Kolekcje: len() mierzy rozmiar list, krotek, słowników, zbiorów i obiektów zakresowych w ten sam sposób.
  • ⚙️ Wydajność: len() działa w stałym czasie O(1), ponieważ Python przechowuje każdą długość obiektu jako atrybut.
  • ???? Błąd typu: Wywołanie len() na liczbie całkowitej lub None powoduje wyjątek TypeError, ponieważ typy te nie mają długości.
  • 🤖 Pomoc AI: Asystenci kodowania AI generują sprawdzenia len(), a procesy uczenia maszynowego wykorzystują len() do uzupełniania i przetwarzania wsadowego sekwencji.

Python Funkcja len().

Co to jest Python Funkcja len()?

len () funkcja jest wbudowaną funkcją w PythonZa pomocą funkcji len() można uzyskać długość danego ciągu znaków, tablicy, listy, krotki, słownika i innych obiektów. Ponieważ liczba elementów jest przechowywana w obiekcie, a nie przeliczana za każdym razem, funkcja len() pozwala szybko sprawdzić rozmiar i zoptymalizować wydajność programu.

Składnia Python Funkcja len().

Python Funkcja len() używa następującej składni:

len(value)

Parametry

wartość: Dany obiekt — taki jak ciąg znaków, lista, krotka, słownik lub zestaw — którego długość chcesz zmierzyć.

Wartość zwracana

Funkcja len() zwraca liczbę całkowitą, czyli liczbę znaków w ciągu znaków lub liczbę elementów w tablicy, liście lub kolekcji. Dokładne znaczenie wartości zwracanej zależy od typu przekazanego obiektu:

  • Ciągi: len() zwraca liczbę znaków w ciągu, wliczając znaki interpunkcyjne, spacje i wszelkiego rodzaju znaki specjalne.
  • Pusty: Pusty ciąg znaków lub pusta kolekcja zwraca 0, ponieważ nie zawiera żadnych elementów.
  • Kolekcje: Funkcja wbudowana len() zwraca liczbę elementów przechowywanych w kolekcji.
  • Błąd typu: Funkcja len() zależy od typu przekazanego obiektu. Przekazanie wartości bez długości, takiej jak liczba całkowita, powoduje błąd TypeError.
  • Słownik: W przypadku słownika każda para klucz-wartość liczona jest jako jedna jednostka, więc len() zwraca liczbę kluczy.

Przykłady Python Funkcja len().

Poniższe przykłady pokazują, jak używać funkcji len() do znajdowania długości różnych Python obiekty, w tym ciąg znaków, lista, krotka, słownik i tablica.

Przykład 1: Jak znaleźć długość ciągu znaków

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

Wyjście:

The length of the string  is : 35

Przykład 2: Jak znaleźć długość listy

# to find the length of the list

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

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

Wyjście:

The length of the list is 4

Przykład 3: Jak znaleźć długość krotki

# to find the length of the tuple

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

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

Wyjście:

The length of the tuple is 3

Przykład 4: Jak znaleźć długość słownika

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

Wyjście:

The length of the Dictionary is 4

Przykład 5: Jak znaleźć długość tablicy

# to find the length of the array

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

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

Wyjście:

The length of the Array is 4

Jak znaleźć długość ciągu bez len() w Python

Funkcja len() to najszybszy i najbardziej czytelny sposób pomiaru ciągu znaków, ale można również liczyć znaki ręcznie. To typowe ćwiczenie na rozmowach kwalifikacyjnych z kodowaniem, a każda metoda po prostu przechodzi przez ciąg znaków, zwiększając jednocześnie licznik.

Najbardziej powszechne podejście wykorzystuje pętlę for:

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

Wyjście:

The length is 6

Krótsza opcja wykorzystuje funkcję sum() z wyrażeniem generatora, dodając 1 dla każdego znaku w ciągu:

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

Wyjście:

The length is 6

Inne sposoby liczenia znaków bez len() obejmują:

  • Pętla while, która wycina ciąg znaków, aż stanie się pusty, zwiększając licznik przy każdym przejściu.
  • Funkcja enumerate(), która tracks indeks każdego znaku podczas iteracji.
  • Funkcja rekurencyjna zwracająca 1 plus długość pozostałego podciągu.

Te metody ręczne są wolniejsze niż wbudowana funkcja len(), dlatego należy je zarezerwować do nauki lub ćwiczeń na potrzeby rozmów kwalifikacyjnych. W codziennym kodzie len() pozostaje najszybszą i najjaśniejszą opcją.

W jaki sposób Python Czy funkcja len() działa wewnętrznie?

Zrozumienie działania funkcji len() wyjaśnia, dlaczego jest ona tak szybka. Kiedy wywołujesz funkcję len() na obiekcie, Python Nie skanuje każdego elementu pojedynczo. Zamiast tego wywołuje specjalną metodę __len__() obiektu, co oznacza, że ​​wyrażenie len(x) jest równoważne z x.__len__().

Wbudowane kontenery, takie jak ciągi znaków, listy, krotki, słowniki i zestawy, przechowują swój własny rozmiar jako atrybut. Za każdym razem, gdy dodajesz lub usuwasz element, Python Aktualizuje tę zapisaną liczbę. Po wywołaniu funkcji len() po prostu odczytuje ona wstępnie zapisaną wartość i ją zwraca.

Ponieważ długość jest już znana, funkcja len() działa w czasie stałym, zapisywanym jako O(1). Zajmuje tyle samo czasu, niezależnie od tego, czy obiekt zawiera pięć, czy pięć milionów elementów. Możesz również dodać obsługę len() do własnych klas, definiując metodę __len__(), która zwraca liczbę całkowitą:

class Team:
    def __len__(self):
        return 11

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

Wyjście:

11

Dzięki takiemu projektowi metoda len() zachowuje się spójnie w przypadku każdego typu wbudowanego, a także dowolnego obiektu niestandardowego implementującego metodę __len__().

»Dowiedz się więcej nt Python Metody ciągu

FAQ

Tak. Funkcja len() zlicza każdy znak w ciągu, wliczając spacje, tabulatory, cyfry i znaki interpunkcyjne. Na przykład: len(“Guru 99!”) zwraca 8, ponieważ spacja i wykrzyknik są liczone jako jeden znak.

Funkcja len() zwraca 0 dla pustego ciągu, ponieważ nie zawiera on żadnych znaków. Funkcja len() nie jest indeksowana od zera; zlicza elementy zaczynając od jednego, więc len(“a”) zwraca 1, a len(“”) zwraca 0.

Liczby całkowite nie przechowują wielu elementów, więc nie mają długości. Wywołanie len(123) powoduje błąd „TypeError: obiekt typu „int” nie ma len()”. Aby policzyć cyfry, należy najpierw przekonwertować liczbę za pomocą len(str(123)).

Tak. W przypadku słownika funkcja len() zwraca liczbę par klucz-wartość, licząc każdą parę raz. W przypadku zestawu funkcja len() zwraca liczbę unikatowych elementów, ponieważ zestaw automatycznie odrzuca duplikaty wartości.

Funkcja len() zwraca liczbę punktów kodowych Unicode w ciągu znaków, więc większość liter i symboli akcentowanych jest liczona jako jeden. Jednak niektóre emoji i znaki łączone korzystają z kilku punktów kodowych, więc funkcja len() może dla nich wskazać więcej niż jeden.

Przekaż len jako klucz do funkcji max(): max(words, key=len) zwraca najdłuższy ciąg na liście. Podobnie min(words, key=len) zwraca najkrótszy. Dzięki temu unikniesz pisania ręcznej pętli w celu porównania każdej długości.

Strumienie uczenia maszynowego stale używają funkcji len() — do sprawdzania rozmiarów zbiorów danych, potwierdzania zgodności cech i etykiet oraz pomiaru długości sekwencji. Modele często uzupełniają lub skracają tekst do równej wartości funkcji len(), aby partie danych miały ten sam kształt.

Tak. GitHub Copilot automatycznie uzupełnia sprawdzenia len() i pętle zliczające na podstawie krótkiego komentarza opisującego cel. Asystenci AI z agentami idą o krok dalej, pisząc logikę walidacji długości, dodając klauzule ochronne przeciwko błędom typu TypeError i uruchamiając testy za Ciebie.

Podsumuj ten post następująco: