我如何编写一个函数removeThese(stringToModify,charsToRemove),它将返回一个字符串,该字符串是原始stringToModify字符串,其中charsToRemove中的字符已从中删除。
答案 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")