Länge von Listen und anderen Objekten in Python bestimmen

    Avatarbild von Patrick
    Patrick

    veröffentlicht am: 10.04.2020
    zuletzt aktualisiert am: 02.02.2023

    Python len: Längen ermitteln!

    Oft ist es in der Programmierung nötig, die Länge einer Liste oder anderer Elemente zu kennen.
    Zu diesem Zweck stellt Python die interne Funktion len() zur Verfügung.
    Wie man diese benutzt und wie sie eigentlich funktioniert erfährst du im folgenden Beitrag.

    Länge einer Liste bestimmen mit Python len()

    Um die Länge einer Liste in Python zu bestimmen, kannst du ganz einfach die len() Funktion nutzen.
    Als Antwort erhältst du die Anzahl an Elemente in deiner Liste.

    beispiel = ['foo', 'bar', 'baz']
    len(beispiel)
    
    # Output => 3

    Das Ergebnis in diesem Falle wäre 3.

    Länge von Zeichenketten und Dictionaries bestimmen mit Python len()

    len() lässt sich nicht nur auf Listen anwenden, sondern auch auf andere Sequenzen wie Strings und Dictionaries.
    Hier ein Beispiel der len() Methode zur Ermittlung der Länge eines Strings:

    beispiel = 'Lorem ipsum'
    len(beispiel)
    # Output => 11

    Als Ergebnis erhalten wir 11.
    Das entspricht genau der Anzahl an Zeichen in der Zeichenkette.

    Du kannst die Funktion ebenso gut auf Dictionaries anwenden.
    Hierfür haben wir natürlich auch ein Beispiel vorbereitet:

    beispiel = {'foo', 'bar'}
    len(beispiel)
    # Output => 2

    In diesem Falle erhalten wir, genau wie bei der Liste, die Anzahl der Elemente als Antwort.
    Das wäre in unserem Beispiel 2.

    Wie funktioniert len eigentlich?

    Genau genommen ruft die Funktion nur die interne Methode __len__ des Objektes auf.
    Das heißt, du könntest statt len(meine_liste) auch meine_liste.__len__() schreiben.
    Die Definition von len sieht demnach etwa so aus:

    def len(obj):
        return obj.__len__()

    Bei __len__ handelt es sich um eine sogenannte magic method, welche du auch in deinen eigenen Klassen verwenden kannst.

    Eigene Klassen schreiben, die len() unterstützen

    Wenn deine Klasse nun die Funktion len unterstützen soll, musst du lediglich die Funktion __len__ implementieren, wie im folgenden Beispiel gezeigt:

    class LenTest(object):
        def __init__(self, length=5):
            self.length = length
    
        def __len__(self):
            return self.length

    Wenn du nun ein Objekt der Klasse ohne Parameter erstellst, erhältst du den in __init__ festgelegten Standardwert zurück.

    len_test = LenTest()
    len(len_test)
    # Output => 5

    Als Antwort erhalten wir wie zuvor festgelegt 5.
    Also funktioniert die Funktion wie gewünscht.

    Da wir in dem Beispiel den Parameter length implementiert haben, ist es hier auch möglich, einen anderen Wert festzulegen, welcher dann entsprechend bei Aufruf von len ausgegeben wird.

    len_test = LenTest(42)
    len(len_test)
    # Output => 42

    Fazit

    Mit len steht uns eine Funktion zur Verfügung, die es einfach macht, die Länge verschiedener Objekte abzufragen und diese Funktion auch für deine eigenen Klassen einfach nutzbar zu machen.

    Sind Fragen offen geblieben? Hast du irgendwelche Fehler gefunden?
    Bitte lass es mich in den Kommentaren wissen. Auch wenn dir dieser Post gefallen hat, würde ich mich sehr freuen, wenn du mir das über die Kommentarfunktion mitteilst!

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Python und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig