Python len(): Ein Einsteigerhandbuch zum Zählen von Elementen in Python
Lerne, wie du mit der Python-Funktion len() schnell die Größe von Strings, Listen, Wörterbüchern und anderen Datenstrukturen ermitteln kannst. Entdecke praktische Beispiele und häufige Fehler, die du bei der Arbeit mit len() in deinem eigenen Code vermeiden kannst.
Die Funktion len() ist eines der ersten Werkzeuge, auf die Python-Programmierer/innen zurückgreifen, um Daten zu untersuchen. Wenn du unseren Kurs "Einführung in Python für Entwickler" oder unseren Lernpfad "Grundlagen der Python-Programmierung " durcharbeitest, wirst du sicher auf len() gestoßen sein.h
In diesem Artikel zeige ich dir, wie len() in Python für alle gängigen Datentypen funktioniert, und ich zeige dir, worauf du achten musst, wenn etwas schief läuft.
Was macht die Python-Funktion len()?
Du kannst die in Python eingebaute Funktion len() verwenden, wenn du wissen willst, wie viele Elemente etwas enthält. Ich denke dabei an das Zählen der Anzahl der Elemente in einer Liste oder an das Zählen der Anzahl der Zeichen in einer Zeichenkette. Du kannst sie auch verwenden, um die Schlüssel in einem Wörterbuch zu zählen. Es gibt alle möglichen Arten von Verwendungen.
Hier siehst du, wie du sie in ihrer grundlegendsten Form verwendest:
Setze einfach das, was du messen willst (wie die Dinge, die ich oben aufgeführt habe), an die Stelle von object.
Verwendung von len() mit gängigen Python-Datentypen
Ich habe oben einige häufige Anwendungsfälle aufgelistet, aber sie waren alle ein wenig abstrakt. Gehen wir gängige Beispiele durch, um den Nutzen von len() zu verdeutlichen.
Zählen von Zeichen in einer Zeichenkette
Angenommen, du willst die genaue Länge eines Textes wissen, einschließlich aller Leerzeichen und Satzzeichen:
Tupel gruppieren, ähnlich wie Listen, Elemente, sind aber unveränderlich, d.h. sie können nach der Erstellung nicht mehr geändert werden. len() funktioniert auch hier:
Dies ergibt 2, da das Tupel zwei Elemente speichert.
Zählen der Schlüssel in einem Wörterbuch
In Python-Wörterbüchern dreht sich alles um Schlüssel-Wert-Paare. Wenn du len() für ein Wörterbuch verwendest, zählt es nur die Schlüssel:
person ={"name":"Alice","age":30,"city":"Paris"}print(len(person))Bereitgestellt von
Du bekommst also 3 (eine für jeden Schlüssel).
Eindeutige Elemente in einer Menge prüfen
Sets sind praktisch, wenn du nur einmalige Gegenstände aufbewahren willst. len() wird dir das sagen:
colors ={"red","green","blue","red"}print(len(colors))Bereitgestellt von
Dies ergibt 3, da "red" zweimal vorkommt, aber nur einmal gezählt wird.
Wie len() unter der Haube funktioniert
Vielleicht fragst du dich wie ich, wie len() eigentlich die Größe bestimmt.
Wenn du len() für ein Objekt aufrufst, sucht Python nach der Methode __len__ für dieses Objekt. Eingebaute Typen wie Listen, Strings und Dictionaries haben alle diese Methode.
Wenn wir also eine eigene Klasse erstellen und wollen, dass len() mit ihr arbeitet, müssen wir selbst eine __len__ Methode definieren:
classBox:def__init__(self, items):
self.items = items
def__len__(self):returnlen(self.items)
my_box = Box(["apple","banana","orange"])print(len(my_box))Bereitgestellt von
Hier gibt len()3 zurück, weil die Box drei Gegenstände enthält. Genau wie bei Listen und Strings passt sich len() an, solange das Objekt eine __len__ Methode anbietet.
Was passiert, wenn len() nicht funktioniert?
Natürlich hat nicht alles in Python eine Länge. Wenn du versuchst, len() für etwas zu verwenden, das es nicht unterstützt (ich zeige es dir gleich anhand eines int Datentyps), weist dich Python mit einem TypeError darauf hin. Das ist ein häufiges Problem, vor allem wenn du mit gemischten Datentypen arbeitest. Zum Beispiel:
Wenn du dies siehst, überprüfe, ob es sich bei dem Objekt, das du misst, tatsächlich um einen Container oder eine Sequenz (String, Liste oder Wörterbuch) handelt und nicht um einen einzelnen Wert wie eine Ganzzahl oder einen Float.
Einige praktische len()-Anwendungsfälle
Wir sollten nicht versuchen, die Beispiele so zu überhöhen, dass sie mehr an reale Programmiersituationen erinnern.
Schleifen mit einem Bereich
Wenn du eine Liste mit Hilfe ihrer Indizes in einer Schleife durchlaufen musst, hilft dir len() dabei, den richtigen Bereich für deine Schleife festzulegen:
fruits =["apple","banana","cherry"]for i inrange(len(fruits)):print(f"Index {i}: {fruits[i]}")Bereitgestellt von
Dadurch wird jede Frucht zusammen mit ihrem Index ausgedruckt, was dir sowohl Ordnung als auch Kontext gibt.
Häufig willst du wissen, ob ein Container - wie eine Liste oder ein Wörterbuch - leer ist, bevor du fortfährst:
cart =[]iflen(cart)==0:print("Your shopping cart is empty.")Bereitgestellt von
Dieses Muster hilft dir, Fehler oder unnötige Bearbeitungen zu vermeiden, wenn es nichts gibt, womit du arbeiten kannst.
Lange Zeichenketten abschneiden
Wenn du mit Benutzereingaben arbeitest oder Beschriftungen anzeigst, möchtest du vielleicht die Länge von Strings begrenzen. len() hilft dir, diese Grenzen durchzusetzen:
username ="superlongusername"iflen(username)>10:
username = username[:10]print(username)Bereitgestellt von
Hier werden alle Benutzernamen, die länger als 10 Zeichen sind, gekürzt.
Häufige Fehler mit len()
len() kann dich in die Irre führen, selbst wenn du schon etwas Erfahrung mit Python hast:
Du versuchst, len() auf Ganzzahlen oder Fließkommazahlen anzuwenden: Zahlen sind keine Sammlungen, also haben sie auch keine Länge.
Du vergisst, dass len() Elemente zählt, nicht Werte: In einem Wörterbuch zählt len die Schlüssel - auch wenn mehrere Schlüssel auf denselben Wert verweisen.
Angenommen, len() funktioniert bei allem: Benutzerdefinierte Klassen brauchen eine __len__ Methode, sonst weiß len() nicht, was sie tun sollen.
Versuche, dir diese Regeln zu merken, um Zeit bei der Fehlersuche zu sparen.
Fehlerbehandlung mit len()
Da len() bei Missbrauch eine TypeError auslösen kann, ist es ratsam, deinen Code auf diese Möglichkeit vorzubereiten, besonders wenn du mit unvorhersehbaren Daten arbeitest. Ein try-except-Block ist ein einfacher Weg, um solche Fehler elegant zu behandeln:
data =123try:print(len(data))except TypeError:print("Object has no length.")Bereitgestellt von
Anstatt abzustürzen, gibt dein Programm jetzt eine freundliche Meldung aus. Unser Kurs "Objektorientierte Programmierung in Python " ist eine großartige Ressource, um diese Art von Aufgaben zu bewältigen.
len() mit benutzerdefinierten Klassen verwenden
Kehren wir zu den benutzerdefinierten Klassen zurück. Eine benutzerdefinierte Klasse ist jede Klasse, die du selbst mit dem Schlüsselwort class definierst - zum Beispiel, wenn du etwas Spezielles für dein Programm modellierst, wie Team, Box oder Library. Vorhin hast du gesehen, dass len() bei eingebauten Typen wie Listen und Dictionaries funktioniert, weil sie eine spezielle Methode namens __len__() implementieren. Das Gleiche gilt für deinen eigenen Unterricht. Wenn du willst, dass len() an ihnen arbeitet, musst du __len__() selbst definieren.
Ich versuche nicht, dich mit technischen Details zu langweilen. Das ist wichtig, wenn du eigene Datencontainer erstellst, die sich wie native Python-Sammlungen verhalten sollen. Durch die Unterstützung von len() können deine Objekte natürlicher mit dem Rest des Python-Ökosystems interagieren, einschließlich anderer Funktionen und Bibliotheken.
Hier ist eine kurze Zusammenfassung:
classTeam:def__init__(self, players):
self.players = players
def__len__(self):returnlen(self.players)
my_team = Team(["Alice","Bob","Cathy"])print(len(my_team))Bereitgestellt von
Auch hier gibt len()3 zurück, was die richtige Antwort ist, da dies die Anzahl der Spieler in deinem Team ist.
Fazit
Wenn du das nächste Mal in Python etwas zählen, messen oder seine Größe überprüfen musst, denk daran, dass len() eine gute Option ist.
Aber jetzt, wo wir am Ende angelangt sind, möchte ich noch eine wichtige Sache erwähnen. Wir haben uns auf eine Funktion konzentriert, aber es gibt fast immer viele verschiedene Möglichkeiten, etwas in Python zu erreichen. Wir haben einen Artikel, der sogar viele verschiedene Möglichkeiten zeigt, die Länge einer Liste zu ermitteln, von denen die Funktion len() nur eine Möglichkeit ist: Python Listengröße: 8 verschiedene Methoden, um die Länge einer Liste in Python zu ermitteln.
Übe immer wieder neue Methoden ein. Das ist ein todsicherer Weg, um dich zu einem besseren Programmierer zu machen. Und vergiss nicht, dich für unseren Lernpfadzur Python-Programmierung anzumelden , in dem du lernst, wie man Code optimiert, Funktionen und Tests schreibt und vieles mehr.
Lerne die Funktionen und Methoden von Python-Listen kennen. Schau dir jetzt die Code-Beispiele für list() und andere Python-Funktionen und -Methoden an!
Lerne, wie du Python-Listen mit Techniken wie Slicing, List Comprehensions und itertools aufteilen kannst. Finde heraus, wann du welche Methode für die beste Datenverarbeitung nutzen solltest.
Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Die Funktion
len()ist eines der ersten Werkzeuge, auf die Python-Programmierer/innen zurückgreifen, um Daten zu untersuchen. Wenn du unseren Kurs "Einführung in Python für Entwickler" oder unseren Lernpfad "Grundlagen der Python-Programmierung " durcharbeitest, wirst du sicher auflen()gestoßen sein.hIn diesem Artikel zeige ich dir, wie
len()in Python für alle gängigen Datentypen funktioniert, und ich zeige dir, worauf du achten musst, wenn etwas schief läuft.Was macht die Python-Funktion len()?
Du kannst die in Python eingebaute Funktion
len()verwenden, wenn du wissen willst, wie viele Elemente etwas enthält. Ich denke dabei an das Zählen der Anzahl der Elemente in einer Liste oder an das Zählen der Anzahl der Zeichen in einer Zeichenkette. Du kannst sie auch verwenden, um die Schlüssel in einem Wörterbuch zu zählen. Es gibt alle möglichen Arten von Verwendungen.Hier siehst du, wie du sie in ihrer grundlegendsten Form verwendest:
Setze einfach das, was du messen willst (wie die Dinge, die ich oben aufgeführt habe), an die Stelle von
object.Verwendung von len() mit gängigen Python-Datentypen
Ich habe oben einige häufige Anwendungsfälle aufgelistet, aber sie waren alle ein wenig abstrakt. Gehen wir gängige Beispiele durch, um den Nutzen von
len()zu verdeutlichen.Zählen von Zeichen in einer Zeichenkette
Angenommen, du willst die genaue Länge eines Textes wissen, einschließlich aller Leerzeichen und Satzzeichen:
Dies gibt
5aus, da das Wort"Josef"(mit einem "f") aus fünf Zeichen besteht.Prüfen der Anzahl der Elemente in einer Liste
Wenn du herausfinden willst, wie viele Einträge eine Liste enthält, kannst du dies verwenden:
Hier siehst du
5als Ausgabe.Die Größe eines Tupels ermitteln
Tupel gruppieren, ähnlich wie Listen, Elemente, sind aber unveränderlich, d.h. sie können nach der Erstellung nicht mehr geändert werden.
len()funktioniert auch hier:Dies ergibt
2, da das Tupel zwei Elemente speichert.Zählen der Schlüssel in einem Wörterbuch
In Python-Wörterbüchern dreht sich alles um Schlüssel-Wert-Paare. Wenn du
len()für ein Wörterbuch verwendest, zählt es nur die Schlüssel:Du bekommst also
3(eine für jeden Schlüssel).Eindeutige Elemente in einer Menge prüfen
Sets sind praktisch, wenn du nur einmalige Gegenstände aufbewahren willst.
len()wird dir das sagen:Dies ergibt
3, da"red"zweimal vorkommt, aber nur einmal gezählt wird.Wie len() unter der Haube funktioniert
Vielleicht fragst du dich wie ich, wie
len()eigentlich die Größe bestimmt.Wenn du
len()für ein Objekt aufrufst, sucht Python nach der Methode__len__für dieses Objekt. Eingebaute Typen wie Listen, Strings und Dictionaries haben alle diese Methode.Wenn wir also eine eigene Klasse erstellen und wollen, dass
len()mit ihr arbeitet, müssen wir selbst eine__len__Methode definieren:Hier gibt
len()3zurück, weil die Box drei Gegenstände enthält. Genau wie bei Listen und Strings passt sichlen()an, solange das Objekt eine__len__Methode anbietet.Was passiert, wenn len() nicht funktioniert?
Natürlich hat nicht alles in Python eine Länge. Wenn du versuchst,
len()für etwas zu verwenden, das es nicht unterstützt (ich zeige es dir gleich anhand einesintDatentyps), weist dich Python mit einemTypeErrordarauf hin. Das ist ein häufiges Problem, vor allem wenn du mit gemischten Datentypen arbeitest. Zum Beispiel:Dies löst den folgenden Fehler aus:
Wenn du dies siehst, überprüfe, ob es sich bei dem Objekt, das du misst, tatsächlich um einen Container oder eine Sequenz (String, Liste oder Wörterbuch) handelt und nicht um einen einzelnen Wert wie eine Ganzzahl oder einen Float.
Einige praktische len()-Anwendungsfälle
Wir sollten nicht versuchen, die Beispiele so zu überhöhen, dass sie mehr an reale Programmiersituationen erinnern.
Schleifen mit einem Bereich
Wenn du eine Liste mit Hilfe ihrer Indizes in einer Schleife durchlaufen musst, hilft dir
len()dabei, den richtigen Bereich für deine Schleife festzulegen:Dadurch wird jede Frucht zusammen mit ihrem Index ausgedruckt, was dir sowohl Ordnung als auch Kontext gibt.
Kontrolle auf leere Behälter
Häufig willst du wissen, ob ein Container - wie eine Liste oder ein Wörterbuch - leer ist, bevor du fortfährst:
Dieses Muster hilft dir, Fehler oder unnötige Bearbeitungen zu vermeiden, wenn es nichts gibt, womit du arbeiten kannst.
Lange Zeichenketten abschneiden
Wenn du mit Benutzereingaben arbeitest oder Beschriftungen anzeigst, möchtest du vielleicht die Länge von Strings begrenzen.
len()hilft dir, diese Grenzen durchzusetzen:Hier werden alle Benutzernamen, die länger als 10 Zeichen sind, gekürzt.
Häufige Fehler mit len()
len()kann dich in die Irre führen, selbst wenn du schon etwas Erfahrung mit Python hast:Du versuchst, len() auf Ganzzahlen oder Fließkommazahlen anzuwenden: Zahlen sind keine Sammlungen, also haben sie auch keine Länge.
Du vergisst, dass len() Elemente zählt, nicht Werte: In einem Wörterbuch zählt len die Schlüssel - auch wenn mehrere Schlüssel auf denselben Wert verweisen.
Angenommen, len() funktioniert bei allem: Benutzerdefinierte Klassen brauchen eine
__len__Methode, sonst weißlen()nicht, was sie tun sollen.Versuche, dir diese Regeln zu merken, um Zeit bei der Fehlersuche zu sparen.
Fehlerbehandlung mit len()
Da
len()bei Missbrauch eineTypeErrorauslösen kann, ist es ratsam, deinen Code auf diese Möglichkeit vorzubereiten, besonders wenn du mit unvorhersehbaren Daten arbeitest. Ein try-except-Block ist ein einfacher Weg, um solche Fehler elegant zu behandeln:Anstatt abzustürzen, gibt dein Programm jetzt eine freundliche Meldung aus. Unser Kurs "Objektorientierte Programmierung in Python " ist eine großartige Ressource, um diese Art von Aufgaben zu bewältigen.
len() mit benutzerdefinierten Klassen verwenden
Kehren wir zu den benutzerdefinierten Klassen zurück. Eine benutzerdefinierte Klasse ist jede Klasse, die du selbst mit dem Schlüsselwort
classdefinierst - zum Beispiel, wenn du etwas Spezielles für dein Programm modellierst, wieTeam,BoxoderLibrary. Vorhin hast du gesehen, dasslen()bei eingebauten Typen wie Listen und Dictionaries funktioniert, weil sie eine spezielle Methode namens__len__()implementieren. Das Gleiche gilt für deinen eigenen Unterricht. Wenn du willst, dasslen()an ihnen arbeitet, musst du__len__()selbst definieren.Ich versuche nicht, dich mit technischen Details zu langweilen. Das ist wichtig, wenn du eigene Datencontainer erstellst, die sich wie native Python-Sammlungen verhalten sollen. Durch die Unterstützung von
len()können deine Objekte natürlicher mit dem Rest des Python-Ökosystems interagieren, einschließlich anderer Funktionen und Bibliotheken.Hier ist eine kurze Zusammenfassung:
Auch hier gibt
len()3zurück, was die richtige Antwort ist, da dies die Anzahl der Spieler in deinem Team ist.Fazit
Wenn du das nächste Mal in Python etwas zählen, messen oder seine Größe überprüfen musst, denk daran, dass
len()eine gute Option ist.Aber jetzt, wo wir am Ende angelangt sind, möchte ich noch eine wichtige Sache erwähnen. Wir haben uns auf eine Funktion konzentriert, aber es gibt fast immer viele verschiedene Möglichkeiten, etwas in Python zu erreichen. Wir haben einen Artikel, der sogar viele verschiedene Möglichkeiten zeigt, die Länge einer Liste zu ermitteln, von denen die Funktion
len()nur eine Möglichkeit ist: Python Listengröße: 8 verschiedene Methoden, um die Länge einer Liste in Python zu ermitteln.Übe immer wieder neue Methoden ein. Das ist ein todsicherer Weg, um dich zu einem besseren Programmierer zu machen. Und vergiss nicht, dich für unseren Lernpfadzur Python-Programmierung anzumelden , in dem du lernst, wie man Code optimiert, Funktionen und Tests schreibt und vieles mehr.