我想在python中删除字符串中的字符:
string.replace(',', '').replace("!", '').replace(":", '').replace(";", '')...
但我有很多字符必须删除。我想了一个清单
list = [',', '!', '.', ';'...]
但是如何使用列表来替换字符串中的字符呢?
我想在python中删除字符串中的字符:
string.replace(',', '').replace("!", '').replace(":", '').replace(";", '')...
但我有很多字符必须删除。我想了一个清单
list = [',', '!', '.', ';'...]
但是如何使用列表来替换字符串中的字符呢?
当前回答
这个怎么样,一行字。
reduce(lambda x,y : x.replace(y,"") ,[',', '!', '.', ';'],";Test , , !Stri!ng ..")
其他回答
如果您正在使用python3并寻找翻译解决方案-函数已更改,现在接受1个参数而不是2个参数。
该参数是一个表(可以是字典),其中每个键都是要查找的字符的Unicode序数(int),值是替换值(可以是要将键映射到的Unicode序数或字符串)。
下面是一个用法示例:
>>> list = [',', '!', '.', ';']
>>> s = "This is, my! str,ing."
>>> s.translate({ord(x): '' for x in list})
'This is my string'
简单的方法,
import re
str = 'this is string ! >><< (foo---> bar) @-tuna-# sandwich-%-is-$-* good'
// condense multiple empty spaces into 1
str = ' '.join(str.split()
// replace empty space with dash
str = str.replace(" ","-")
// take out any char that matches regex
str = re.sub('[!@#$%^&*()_+<>]', '', str)
输出:
这是细绳,foo,酒吧,金枪鱼三明治——是——好
为什么不利用这个简单的函数:
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.8中,这适用于我:
s.translate(s.maketrans(dict.fromkeys(',!.;', '')))
最近我在钻研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)
嘿,别投反对票。我只是想分享一些新的想法。