Funkcja len() w Pythonie – uniwersalny sposób na długość obiektów

Funkcja len() w Pythonie jest jednym z najczęściej używanych narzędzi w programowaniu, służącym do uzyskiwania długości różnych obiektów, głównie sekwencji i kolekcji. Odpowiada na pytanie: „ile elementów zawiera dany obiekt?” i działa dla wielu typów danych, nie tylko dla łańcuchów znaków (stringów), ale także list, krotek, słowników oraz obiektów własnych, które wspierają odpowiedni interfejs.

Podstawy działania funkcji len()

  • len() jest funkcją wbudowaną – nie wymaga żadnego importu, jest dostępna we wszystkich wersjach Pythona;
  • Składnia

len(obiekt)

Gdzie obiekt to obiekt, którego długość chcemy poznać.

Typy danych obsługiwane przez len()

len() współpracuje z wieloma typami danych, m.in.:

  • Łańcuchy znaków (str) – zwraca liczbę znaków (łącznie ze spacjami, znakami specjalnymi i interpunkcyjnymi);
  • Listy – zwraca liczbę elementów w liście. Lista jest dynamiczna, więc długość może się zmieniać podczas wykonywania programu;
  • Krotki (tuple) – podobnie jak lista, ale niezmienna – len() zwraca liczbę elementów w krotce;
  • Słowniki (dict) – zwraca liczbę par klucz-wartość, każda para liczona jest jako jeden element;
  • Zbiory (set, frozenset) – liczy unikatowe elementy w zbiorze.

Przykłady:


print(len("Python")) # 6
print(len([1, 2, 3, 4])) # 4
print(len((10, 20, 30))) # 3
print(len({'a': 1, 'b': 2})) # 2
print(len(set([1, 2, 4, 2]))) # 3

Szczegóły działania i uwagi

  • Obiekt, dla którego wywołujemy len(), musi implementować metodę specjalną __len__() – właśnie poprzez tę metodę Python uzyskuje informację o długości obiektu;
  • Jeżeli przekażemy obiekt niedozwolony (np. liczbę całkowitą lub wartość None), otrzymamy błąd typu TypeError;
  • Dla pustych obiektów (np. pusty string "", pusta lista [], pusty słownik {}) wynikem zawsze będzie 0.

Typowe zastosowania w praktyce

  • Iterowanie po indeksach elementów

for i in range(len(lista)):
    print(i, lista[i])
  • Sprawdzanie, czy kolekcja jest pusta

if len(lista) == 0:
    print("Lista jest pusta")
  • Dynamiczne operacje na listach (po dodaniu lub usunięciu elementu długość ulega zmianie):

liczby = [10, 20, 30]
print(len(liczby)) # 3
liczby.append(40)
print(len(liczby)) # 4
del liczby[2]
print(len(liczby)) # 3

Obsługa własnych klas z len()

Aby własna klasa działała z funkcją len(), należy zaimplementować w niej metodę __len__():


class Kolekcja:
    def __init__(self, elementy):
        self.elementy = elementy
    def __len__(self):
        return len(self.elementy)
k = Kolekcja([1,2,3])
print(len(k)) # 3

len() wywoła tu metodę __len__() zdefiniowaną przez programistę.

len() w bibliotekach zewnętrznych

Funkcja len() działa również na strukturach danych oferowanych przez popularne biblioteki:

  • NumPy – tablice numpy mają zdefiniowaną długość jako liczbę elementów w pierwszym wymiarze;
  • Pandas – DataFrame i Series również współpracują z len(), co zwraca liczbę wierszy/elementów.

Najczęstsze błędy i pułapki

  • Próba użycia len() na obiekcie niebędącym kontenerem (np. liczbie całkowitej czy None) zakończy się błędem,
  • w słownikach liczba zwracana przez len() to liczba par klucz-wartość, nie osobnych kluczy czy wartości,
  • uwaga na „liczbę znaków” w stringach: znaki specjalne, spacje, a także znaki spoza ASCII (np. emoji) liczone są pojedynczo, ale znaki złożone (np. niektóre znaki diakrytyczne) mogą zająć więcej miejsca w pamięci niż pojedynczy znak – len() mimo to zwróci liczbę logicznych znaków.

Podsumowanie kluczowych aspektów

  • len() jest uniwersalna i szybka – działa na praktycznie wszystkich „kolekcjach” i sekwencjach w Pythonie;
  • Zwraca liczbę elementów (dla kolekcji) lub znaków (dla stringów);
  • Może być używana z własnymi klasami po zdefiniowaniu metody __len__();
  • Jest niezastąpiona w operacjach na dynamicznych strukturach danych oraz podczas pracy ze złożonymi kolekcjami.

Jeśli tylko potrzebujesz dowiedzieć się, ile elementów zawiera jakiś obiekt w Pythonie, Twój pierwszy wybór powinien zawsze paść na len().

Programista i twórca serwisu Creative Coding, absolwent Politechniki Warszawskiej (WEiTI). Od 10+ lat łączy front‑end, grafikę generatywną i narzędzia dla twórców; opublikował 120+ projektów i artykułów, prowadził warsztaty dla 2 000+ uczestników. Pracuje z JavaScriptem, Three.js, P5.js i GLSL, bada wydajność i dokumentuje procesy, tworząc praktyczne przewodniki dla osób łączących kod z obrazem, dźwiękiem i interakcją.
Zostaw komentarz

Komentarze

Brak komentarzy. Dlaczego nie rozpoczniesz dyskusji?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *