我想在python中删除字符串中的字符:
string.replace(',', '').replace("!", '').replace(":", '').replace(";", '')...
但我有很多字符必须删除。我想了一个清单
list = [',', '!', '.', ';'...]
但是如何使用列表来替换字符串中的字符呢?
我想在python中删除字符串中的字符:
string.replace(',', '').replace("!", '').replace(":", '').replace(";", '')...
但我有很多字符必须删除。我想了一个清单
list = [',', '!', '.', ';'...]
但是如何使用列表来替换字符串中的字符呢?
当前回答
另外一个有趣的话题是将UTF-8重音字符从字符串中移除,将其转换为标准的非重音字符:
在python unicode字符串中删除重音的最佳方法是什么?
从主题摘录的代码:
import unicodedata
def remove_accents(input_str):
nkfd_form = unicodedata.normalize('NFKD', input_str)
return u"".join([c for c in nkfd_form if not unicodedata.combining(c)])
其他回答
另一种使用regex的方法:
''.join(re.split(r'[.;!?,]', s))
最近我在钻研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)
嘿,别投反对票。我只是想分享一些新的想法。
您可以使用翻译方法。
s.translate(None, '!.;,')
你可以用这样的东西
def replace_all(text, dic):
for i, j in dic.iteritems():
text = text.replace(i, j)
return text
这不是我自己的代码,来自这里,这是一篇伟大的文章,并深入讨论了这样做
你可以使用str.translate():
s.translate(None, ",!.;")
例子:
>>> s = "asjo,fdjk;djaso,oio!kod.kjods;dkps"
>>> s.translate(None, ",!.;")
'asjofdjkdjasooiokodkjodsdkps'