Die Python-Funktion len(obj) liefert die Anzahl der Elemente eines Objekts: Zeichen eines Strings, Elemente einer Liste, Schlüssel eines Dictionaries, Bytes eines Bytestrings. Intern ruft sie obj.__len__() auf — Custom-Klassen können diese Methode implementieren, um sich messbar zu machen. Bei nicht messbaren Objekten wirft len() einen TypeError.

Einleitung

len() ist eine der meistverwendeten Builtin-Funktionen Pythons. Sie funktioniert auf allen Sized-Objekten — alles, was eine __len__()-Methode hat. Das Ergebnis ist immer eine nicht-negative Ganzzahl.

Wichtig: len() zählt nur direkte Elemente, nicht rekursiv. len([[1, 2], [3, 4, 5]]) ist 2, nicht 5.

Bei Strings zählt len() Code-Points (str ist Unicode-basiert), nicht Bytes — wer Bytes-Längen braucht, kodiert vorher mit .encode() in bytes und misst dort. Bei Generatoren funktioniert len() nicht — die wissen ihre Länge nicht im Voraus.

Syntax

Python Syntax
len(s)
Parameter
s

Eine Sequenz (str, list, tuple, bytes, bytearray, range), eine Sammlung (dict, set, frozenset) oder ein Custom-Objekt mit __len__().

Rückgabewert

Eine nicht-negative int, die die Anzahl der Elemente angibt.

Beispiele

Verschiedene Typen

Python Beispiel
print(len("Hallo"))
print(len([1, 2, 3, 4]))
print(len((1, 2)))
print(len({"a": 1, "b": 2}))
print(len({1, 2, 3, 3}))   # Set: Duplikate zählen nur einmal
print(len(b"bytes"))
print(len(range(100)))
Output
5
4
2
2
3
5
100

Unicode vs. Bytes

Python Beispiel
text = "Müller"
print(len(text))                  # 6 Zeichen
print(len(text.encode("utf-8")))  # 7 Bytes (ü ist 2 Bytes)
Output
6
7

Custom-Klasse mit __len__

Python Beispiel
class Cart:
    def __init__(self):
        self.items = []

    def __len__(self):
        return len(self.items)

w = Cart()
w.items.extend(["Brot", "Käse", "Wein"])
print(len(w))
Output
3

Praktische Beispiele

Truthy-Check via len

Python Beispiel
# Wenn __len__ definiert ist, gilt: leere Sammlung → falsy
for x in [[], [1], "", "hi", {}, {"a": 1}]:
    print(f"{x!r:10}{bool(x)}")
Output
[]         → False
[1]        → True
''         → False
'hi'       → True
{}         → False
{'a': 1}   → True

Längste Eintrag in einer Liste finden

Python Beispiel
words = ["Apfel", "Birne", "Wassermelone", "Kiwi"]
longest = max(words, key=len)
print(longest)
Output
Wassermelone

Generator hat keine Länge

Python Beispiel
gen = (x * 2 for x in range(10))
try:
    print(len(gen))
except TypeError as e:
    print(e)

# Workaround: in Liste umwandeln (verbraucht Speicher!)
print(len(list(gen)))
Output
object of type 'generator' has no len()
10

Praktische Hinweise

  • O(1) bei allen Builtins: len() ist konstant — die Länge wird nicht durch Iteration gezählt, sondern als Attribut gespeichert.
  • Leerer Container ist falsy: if not items: ist idiomatischer als if len(items) == 0:.
  • Strings = Code-Points, nicht Bytes oder Grapheme-Cluster (Emojis können mehrere Code-Points haben).
  • Generatoren haben keine Länge — vorher in list() materialisieren oder mit sum(1 for _ in gen) zählen (verbraucht den Generator).
  • Custom-Klasse mit __len__(): gilt automatisch als Sized-Container und beeinflusst bool() sowie if-Check.
/ Weiter

Zurück zu Builtin Functions

Zur Übersicht