我想在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
其他回答
您可以使用翻译方法。
s.translate(None, '!.;,')
最近我在钻研scheme,现在我觉得我擅长递归和求值。哈哈哈。分享一些新的方法:
首先,求值
print eval('string%s' % (''.join(['.replace("%s","")'%i for i in replace_list])))
第二,递归
def repn(string,replace_list):
if replace_list==[]:
return string
else:
return repn(string.replace(replace_list.pop(),""),replace_list)
print repn(string,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
Python 3,单行列表综合实现。
from string import ascii_lowercase # 'abcdefghijklmnopqrstuvwxyz'
def remove_chars(input_string, removable):
return ''.join([_ for _ in input_string if _ not in removable])
print(remove_chars(input_string="Stack Overflow", removable=ascii_lowercase))
>>> 'S O'
我在想一个解决办法。首先,我将字符串输入作为一个列表。然后我将替换列表中的项。然后通过join命令,我将返回list作为字符串。代码可以是这样的:
def the_replacer(text):
test = []
for m in range(len(text)):
test.append(text[m])
if test[m]==','\
or test[m]=='!'\
or test[m]=='.'\
or test[m]=='\''\
or test[m]==';':
#....
test[n]=''
return ''.join(test)
这将删除字符串中的任何内容。你怎么看?