2016-06-13 6 views
0

Gefühl dumm mit dieser:/entfernen Zeichen aus String ersetzen() verwenden

Ich weiß, ich bin mit der Methode falsch in irgendeine Weise, aber mit nur https://docs.python.org/3/library/stdtypes.html#str.replace mit mir arbeiten kann einfach nicht verstehen, warum ich kann nicht tun, was ich versuche, hier zu erreichen (was ich hoffe, offensichtlich genug?)

import string 

word2 = 'abc?ef,[email protected]' 

for x in string.punctuation: 
    if x in word2: 
     word2.replace(x,'') 

print (word2) 

ich ein paar debuggt & print-Anweisungen versucht haben, so dass ich es Iterieren durch String.substring OK, wissen und Ich weiß, dass es durch Wort2 geht und erkennt, wenn jedes x vorhanden ist, aber warum wird nicht ersetzt() tatsächlich irgendetwas hier tun?

Dank

Antwort

0

versuchen Sie dies:

import string 

word2 = "abc?ef,[email protected]" 

for x in string.punctuation: 
    if x in word2:  //works with or without 
     word2 = word2.replace(x,"")// save the after replace is done. 
print(word2) 

Ausgang:

abcefhil

+1

Ich möchte hinzufügen, dass Sie wirklich nicht die bedingte brauchen 'wenn x in word2' ist –

+0

@ juanpa.arrivillaga ja wahr –

+0

Danke. Es war tatsächlich die Tatsache, dass Sie einer Variablen zuweisen müssen, was replace() erzeugt, das ich vermisse/nicht verstanden habe. @ juanpa.arrivillaga Wow, habe das auch nicht bemerkt, aber scheint jetzt offensichtlich. Vielen Dank. –

0

Sie str.join und Verständnis dieses in einer einfachen Linie zu tun, verwenden können.

import string 

word2 = "abc?ef,[email protected]" 
word2 = ''.join(c for c in word2 if c not in punctuation)