使用replace()从字符串中删除字符

时间:2016-06-13 19:35:27

标签: python-3.x replace

感到愚蠢的这个:/

我知道我在某种程度上使用了错误的方法,但只有https://docs.python.org/3/library/stdtypes.html#str.replace才能使用我,我就无法理解为什么我无法做出我所做的事情。我试图在这里实现(我希望这是显而易见的?)

import string

word2 = 'abc?ef,hi.!l@'

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

print (word2)

我已经尝试过一些调试&打印语句所以我知道它通过string.substring迭代OK,我知道它通过word2并识别每个x何时出现,但为什么不替换()实际上在这里做任何事情?

由于

2 个答案:

答案 0 :(得分:0)

试试这个:

import string

word2 = "abc?ef,hi.!l@"

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)

输出:

  

abcefhil

答案 1 :(得分:0)

您可以使用str.join和理解来直接执行此操作。

import string

word2 = "abc?ef,hi.!1@"
word2 = ''.join(c for c in word2 if c not in punctuation)