So entfernen Sie alle Werte in einer Zeichenfolge mit Ausnahme der ausgewählten [duplizieren]

8

Also mein Code ist %Code% Ich möchte alles außer 2 und 5 entfernen. Die Ausgabe wird value = "123456" sein das Programm sollte funktionieren, auch der Wert wird beispielsweise geändert %Code% Die Ausgabe wird 2

sein

Ich habe versucht, 25 und value = "463312" function zu verwenden. Aber es hat nicht funktioniert. Auf Python 3.6.2 machen

    
dipte 17.09.2017, 03:55
quelle

6 Antworten

12

Anstatt zu versuchen, jedes unerwünschte Zeichen zu entfernen, ist es besser, eine Whitelist der Zeichen zu erstellen, die Sie im Ergebnis behalten möchten:

%Vor%

Hier ist eine weitere Option, bei der die Schleife implizit ist. Wir erstellen ein Mapping, das mit str.translate verwendet wird, wobei jedes Zeichen auf '' abgebildet wird, sofern nicht anders angegeben:

%Vor%     
wim 17.09.2017, 04:01
quelle
9

Wenn Sie nach Regex-Lösung suchen, können Sie re.sub verwenden, um alle Zeichen außer 25 durch '' zu ersetzen.

%Vor%

Ausgabe:      2 , 522

    
Dark 17.09.2017 04:47
quelle
2

Wenn Sie Python 2 verwenden, können Sie einen Filter wie diesen verwenden:

%Vor%

Wenn Sie Python 3 verwenden, müssen Sie "".join() das Ergebnis des Filters.

    
Akavall 17.09.2017 04:18
quelle
0
%Vor%

Es ist das Wororking-Programm von dem, was Sie sagten, Sie können dem Wert jede Eingabe geben, es wird immer 25 gedruckt.

    
Akash Tyagi 17.09.2017 04:07
quelle
0
%Vor%     
salparadise 17.09.2017 04:16
quelle
0

Ich habe versucht, dies anders zu erreichen, indem ich die eingebaute Methode filter() von Python mit lambda verwende. Siehe unten:

%Vor%

Hoffe das hat geholfen!

(Bearbeitet, um die Antwort zu verkürzen, kredit @Akavall + wieder @salparadise)

    
Jerrybibo 17.09.2017 04:15
quelle

Tags und Links