Entfernen Sie Zeichenfolgen aus einer Liste, die Zahlen in Python enthält [Duplizieren]

9

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%     
user1506145 18.04.2013, 13:42
quelle

6 Antworten

24

Ohne Regex:

%Vor%     
eumiro 18.04.2013, 13:45
quelle
6

Ich finde mit isalpha() das eleganteste, aber es wird auch entfernt Elemente, die andere nicht alphabetische Zeichen enthalten:

  

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
%Vor%     
Adam 18.04.2013 13:46
quelle
2

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.

%Vor%

Hier sind meine Ergebnisse:

%Vor%     
mgilson 18.04.2013 13:44
quelle
0

Versuchen:

%Vor%     
Pablo Santa Cruz 18.04.2013 13:45
quelle
0

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%     
GoingTharn 18.04.2013 13:47
quelle
0

Und noch eine kleine Variation:

%Vor%

Und lege die Zeichen, die in deinem re gültig sind (wie Leerzeichen / Interpunktion / andere)

    
Jon Clements 18.04.2013 13:56
quelle

Tags und Links