Gibt es eine kurze Möglichkeit, alle Zeichenfolgen in einer Liste zu entfernen, die Zahlen enthält?
Zum Beispiel
%Vor%würde zurückkehren
%Vor% Ich finde mit isalpha()
das eleganteste, aber es wird auch entfernt Elemente, die andere nicht alphabetische Zeichen enthalten:
%Vor%Geben Sie true zurück, wenn alle Zeichen in der Zeichenfolge alphabetisch sind und mindestens ein Zeichen vorhanden ist, andernfalls false. Alphabetische Zeichen sind die Zeichen, die in der Unicode-Zeichendatenbank als "Buchstabe"
definiert sind
Ich würde eine Regex verwenden:
%Vor% In Bezug auf das Timing ist die Verwendung eines Regex bei Ihren Beispieldaten wesentlich schneller als bei der isdigit-Lösung. Zugegeben, es ist langsamer als isalpha
, aber das Verhalten ist etwas anders bei Interpunktion, Whitespace usw. Da das Problem nicht angibt, was mit diesen Strings passieren soll, ist nicht klar, welche die beste Lösung ist.
Hier sind meine Ergebnisse:
%Vor%Sicher, verwenden Sie die Zeichenfolge, die für Ziffern eingebaut ist, und testen Sie deren Existenz. Wir werden ein wenig Lust bekommen und nur auf Wahrhaftigkeit im Listenverständnis testen; Wenn es etwas zurückgibt, gibt es Ziffern in der Zeichenfolge.
Also:
%Vor%Und noch eine kleine Variation:
%Vor%Und lege die Zeichen, die in deinem re gültig sind (wie Leerzeichen / Interpunktion / andere)
Tags und Links python