Wie extrahiere ich alle UPPER aus einer Zeichenkette? Python

7
%Vor%

Wie würde man alle UPPER aus einer Zeichenkette extrahieren?

%Vor%     
O.rka 08.04.2013, 18:30
quelle

5 Antworten

21

Listenverständnis verwenden:

%Vor%

Verwenden des Generatorausdrucks:

%Vor%

Sie können das auch mit regulären Ausdrücken tun:

%Vor%     
piokuc 08.04.2013, 18:32
quelle
7
%Vor%

string.translate (s, Tabelle [, deletechars]) wird gelöscht Alle Zeichen aus der Zeichenfolge deleetchars , eine Liste von Zeichen. Dann wird die Zeichenkette mit der Tabelle übersetzt (wir verwenden sie in diesem Fall nicht) .

Um nur die Kleinbuchstaben zu entfernen, müssen Sie string.ascii_lowercase übergeben als Liste der zu löschenden Buchstaben.

Die table ist keine, denn wenn die Tabelle None ist, wird nur der Löschschritt ausgeführt.

    
herinkc 08.04.2013 18:34
quelle
5

Höhere Ordnung funktioniert zur Rettung!

%Vor%

BEARBEITEN : Falls Sie nicht wissen, welcher Filter funktioniert: filtert eine Funktion und eine iterierbare Funktion und wendet dann die Funktion auf jedes Element in der iterablen Funktion an. Es behält alle Werte bei, die wahr sind, und verwirft den Rest. Daher wird "ABCDEFGHIJKLMNOP" zurückgegeben.

    
hatkirby 08.04.2013 18:38
quelle
2

oder regex verwenden ... das ist eine einfache Antwort

%Vor%

nur zum Vergleich

%Vor%

so ist dieser Join plus findall die schnellste Methode (pro ipython% timeit (python 2.6)), mit einer 10000 Zeichen langen identischen Zeichenfolge

Bearbeiten : Oder nicht

%Vor%     
Joran Beasley 08.04.2013 18:35
quelle
1

Sie könnten einen funktionelleren Ansatz verwenden

%Vor%     
Finn 08.04.2013 18:38
quelle