Seite 1 von 1

Prüfen ob ein String nur Buchstaben enthält

Verfasst: Mittwoch 16. Juni 2021, 15:59
von zabuza_92
Ich habe eine Liste mit Strings, wovon manche Zahlen und andere Buchstaben bzw ganze Wörter enthalten.
Ich möchte alle Strings die nur Buchstaben enthalten in eine neue Liste speichern, wie bekomme ich das hin.
Am besten ohne fertige Funktionen! :)

Re: Prüfen ob ein String nur Buchstaben enthält

Verfasst: Mittwoch 16. Juni 2021, 16:24
von ThomasL
Zeig mal Code, was hast du schon probiert? Was geht nicht wie es soll? etc...

Re: Prüfen ob ein String nur Buchstaben enthält

Verfasst: Mittwoch 16. Juni 2021, 19:52
von __blackjack__

Code: Alles auswählen

#!/usr/bin/env python3
import unicodedata


def is_just_letters(text):
    return all(
        unicodedata.category(character).startswith("L") for character in text
    )


def main():
    texts = [
        "abc",
        "not just letters",
        "23",
        "1e77er5",
        "Ⅱ",  # Roman number.
        "ⅳ",  #   "     "
        "𝝮",
        "(z)",
    ]
    just_letters_texts = list(filter(is_just_letters, texts))
    print(just_letters_texts)


if __name__ == "__main__":
    main()

Re: Prüfen ob ein String nur Buchstaben enthält

Verfasst: Donnerstag 17. Juni 2021, 12:01
von Zwangsgestörter
Nach reichlicher Überlegung gehe ich mir jetzt erst mal einen Kaffee holen.

Kann das mal jemand löschen?

Re: Prüfen ob ein String nur Buchstaben enthält

Verfasst: Freitag 18. Juni 2021, 16:54
von LukeNukem
__blackjack__ hat geschrieben: Mittwoch 16. Juni 2021, 19:52

Code: Alles auswählen

#!/usr/bin/env python3
import unicodedata

def is_just_letters(text):
    return all(
        unicodedata.category(character).startswith("L") for character in text
    )
Hm, ich hätte vermutlich eher an so etwas wie

Code: Alles auswählen

all([char.isalpha() for char in some_string])
gedacht...

Re: Prüfen ob ein String nur Buchstaben enthält

Verfasst: Freitag 18. Juni 2021, 18:11
von snafu
isalpha() funktioniert auch für mehrere Zeichen. Es prüft, ob alle Zeichen Buchstaben sind. Das braucht man also nicht nachzubauen.

Zum Testen für alle Wörter:

Code: Alles auswählen

all(word.isalpha() for word in text.split())

Re: Prüfen ob ein String nur Buchstaben enthält

Verfasst: Dienstag 22. Juni 2021, 00:13
von LukeNukem
snafu hat geschrieben: Freitag 18. Juni 2021, 18:11 isalpha() funktioniert auch für mehrere Zeichen. Es prüft, ob alle Zeichen Buchstaben sind. Das braucht man also nicht nachzubauen.
True, Du hast Recht. ;-)