Python buchstaben zählen?
Ich möchte mit mit Python ein kleines Programm schreiben dass Buchstaben zählt sieht bei mir so aus: text = "Das ist ein Test" print(len(text))
allerdings zählt das Programm logischerweise jedes Zeichen mit also auch Leerzeichen, wie sage ich dem Programm dass es nur die Buchstaben zählen soll
3 Antworten
s = 'Das ist das Haus vom Ni-ko-laus. :)'
l = len(list(c for c in s if c.isalpha()))
"s" enthält deinen String, "l" hingegen die Anzahl der Buchstaben. :)
Alternativ:
l = len(list(filter(lambda c: c.isalpha(), s)))
Je nachdem was du schöner findest. :)
PS: Noch eine "clevere" Möglichkeit wäre das hier:
l = sum(map(lambda c: c.isalpha(), s))
Diese Letzte ist mit Abstand die effizienteste Methode. Die anderen beiden obigen Methoden sind auch nicht schlecht, aber gerade die anderen Beispiele der anderen Antworten sind ineffizient, und bringen einen riesigen Overhead an Speicherverbrauch und Laufzeit mit sich. Außerdem werden sie nicht zuverlässig funktionieren ... enthalten also Bugs.
Ich denke, die letzte Methode in meiner Antwort hier, ist mit Abstand die beste. :)
PS: Habe gerade den Kommentar in der anderen Antwort gelesen, in dem es um Umlaute ging.
Da c.isalpha() in meiner Antwort automatisch auch Umlaute berücksichtigt, sind dabei keine weiteren Anpassungen notwendig! :)
from string import ascii_letters
a = input('Text': ')
print(f'{a} beinhaltet {sum([a.count(Nr) for Nr in ascii_letters])} Buchstaben.')
Gibt mehrere Möglichkeiten (wie immer).
Wenn du nur Leerzeichen entfernen möchtest, könntest du soetwas machen:
text = "Das ist ein Test"
print (len(text.replace(" ", "")))
Wenn du aber NUR Buchstaben haben möchtest (ohne Zeichen wie !?/ usw.) könntest du einfach einen Regex verwenden
import re
text = "Das ist ein Test !!!?._,"
regex = re.compile('[^a-zA-Z]')
print(len(regex.sub('', text)))
Bin allerdings kein Python-Experte. Daher wirst du wahrscheinlich noch schönere Lösungen bekommen :)
:D danke für die schnelle Antwort, ich finde die Lösung super, einfach verständlich für mich, bin kompletter Python newbie