我正在开发一个涉及解析文本页面的项目。我编写了以下函数来从单词中删除某些标点符号并将其转换为小写:
def format_word(word):
return word.replace('.', '').replace(',', '').replace('\"', '').lower()
有没有办法将所有对.replace()的调用合并为一个?这看起来很丑陋!我能想到的唯一方法是:
def format_word(word):
for punct in '.,\"':
word.replace(punct, '')
return word.lower()
答案 0 :(得分:8)
如果要删除字符,可以使用str.translate
:
在python 2.x中:
>>> 'Hello, "world".'.translate(None, ',."')
'Hello world'
在python 3.x中:
>>> 'Hello, "world".'.translate(dict.fromkeys(map(ord, ',."')))
'Hello world'
答案 1 :(得分:4)
您可以使用re
module作为
import re
>>> def format_word(word):
... return re.sub(r'[,."]', "", word)
...
>>> print format_word('asdf.,"asdf')
asdfsdf
答案 2 :(得分:0)
你很亲密。如果您不仅要致电.replace()
,还要使用其结果,那么您就完成了:
def format_word(word):
for punct in '.,\"':
word = word.replace(punct, '')
return word.lower()
答案 3 :(得分:0)
您可以使用正则表达式执行此操作:
re.sub("[.,\"]", "", "\"wo,rd.")