python:如何删除某些字符

时间:2010-10-06 16:24:36

标签: python string character

我如何编写一个函数removeThese(stringToModify,charsToRemove),它将返回一个字符串,该字符串是原始stringToModify字符串,其中charsToRemove中的字符已从中删除。

4 个答案:

答案 0 :(得分:9)

>>> s = 'stringToModify'
>>> rem = 'oi'
>>> s.translate(str.maketrans(dict.fromkeys(rem)))
'strngTMdfy'

答案 1 :(得分:3)

>>> string_to_modify = 'this is a string'
>>> remove_these = 'aeiou'
>>> ''.join(x for x in string_to_modify if x not in remove_these)
'ths s  strng'

答案 2 :(得分:2)

这是一个使用lambda函数和python filter()方法的机会。 filter获取谓词和序列,并返回仅包含原始项目的序列 谓词为真的序列。在这里,我们只希望s中的所有字符都不在rm

>>> s = "some quick string 2 remove chars from"
>>> rm = "2q"
>>> filter(lambda x: not (x in rm), s)
"some uick string remove chars from"
>>>

答案 3 :(得分:-1)

使用正则表达式:

import re
newString = re.sub("[" + charsToRemove + "]", "", stringToModify)

作为一个具体的例子,以下将从句子中删除所有出现的“a”,“m”和“z”:

import re
print re.sub("[amz]", "", "the quick brown fox jumped over the lazy dog")

这将删除“m”到“s”中的所有字符:

re.sub("[m-s]", "", "the quick brown fox jumped over the lazy dog")