我想在python中删除字符串中的字符:
string.replace(',', '').replace("!", '').replace(":", '').replace(";", '')...
但我有很多字符必须删除。我想了一个清单
list = [',', '!', '.', ';'...]
但是如何使用列表来替换字符串中的字符呢?
我想在python中删除字符串中的字符:
string.replace(',', '').replace("!", '').replace(":", '').replace(";", '')...
但我有很多字符必须删除。我想了一个清单
list = [',', '!', '.', ';'...]
但是如何使用列表来替换字符串中的字符呢?
当前回答
为什么不利用这个简单的函数:
def remove_characters(str, chars_list):
for char in chars_list:
str = str.replace(char, '')
return str
使用功能:
print(remove_characters('A.B!C?', ['.', '!', '?']))
输出:
ABC
其他回答
为什么不是一个简单的循环?
for i in replace_list:
string = string.replace(i, '')
另外,避免将列表命名为“list”。它覆盖内置函数列表。
删除* % @ !从下面的字符串:
s = "this is my string, and i will * remove * these ** %% "
new_string = s.translate(s.maketrans('','','*%,&@!'))
print(new_string)
# output: this is my string and i will remove these
您可以使用翻译方法。
s.translate(None, '!.;,')
也许有一种更现代、更实用的方式来实现你的愿望:
>>> subj = 'A.B!C?'
>>> list = set([',', '!', '.', ';', '?'])
>>> filter(lambda x: x not in list, subj)
'ABC'
请注意,对于这个特定的目的,它是相当夸张的,但一旦您需要更复杂的条件,过滤器就会派上用场
另一种使用regex的方法:
''.join(re.split(r'[.;!?,]', s))