例如,如果我有一串数字和一个单词列表:
My_number = ("5,6!7,8")
My_word =["hel?llo","intro"]
请您参考如下方法:
使用str.translate:
>>> from string import punctuation
>>> lis = ["hel?llo","intro"]
>>> [ x.translate(None, punctuation) for x in lis]
['helllo', 'intro']
>>> strs = "5,6!7,8"
>>> strs.translate(None, punctuation)
'5678'
使用正则表达式:
>>> import re
>>> [ re.sub(r'[{}]+'.format(punctuation),'',x ) for x in lis]
['helllo', 'intro']
>>> re.sub(r'[{}]+'.format(punctuation),'', strs)
'5678'
使用列表理解和str.join:
>>> ["".join([c for c in x if c not in punctuation]) for x in lis]
['helllo', 'intro']
>>> "".join([c for c in strs if c not in punctuation])
'5678'
功能:
>>> from collections import Iterable
def my_strip(args):
if isinstance(args, Iterable) and not isinstance(args, basestring):
return [ x.translate(None, punctuation) for x in args]
else:
return args.translate(None, punctuation)
...
>>> my_strip("5,6!7,8")
'5678'
>>> my_strip(["hel?llo","intro"])
['helllo', 'intro']
