在字符串上使用.translate()删除数字[Python 3]
假设我有字符串'2okjser823ab'。如何使用.translate()从字符串中删除所有数字在字符串上使用.translate()删除数字[Python 3],python,string,python-3.x,Python,String,Python 3.x,假设我有字符串'2okjser823ab'。如何使用.translate()从字符串中删除所有数字 我看到在Python2.x中可以执行类似.translate(无,'0123456789')的操作,但如果我在Python3中尝试此操作,它会告诉我该方法只接受一个参数。在Python3中看起来有点困难;不知道为什么 以下是您可以做的: >>> import string >>> translation = str.maketrans(string.ascii_
我看到在Python2.x中可以执行类似.translate(无,'0123456789')的操作,但如果我在Python3中尝试此操作,它会告诉我该方法只接受一个参数。在Python3中看起来有点困难;不知道为什么 以下是您可以做的:
>>> import string
>>> translation = str.maketrans(string.ascii_letters, string.ascii_letters, string.digits)
>>> "2okjser823ab".translate(translation)
'okjserab'
您可能需要将string.ascii_字母
与您期望的任何其他输入一起展开(string.ascii_字母+string.标点符号+string.whitespace
)
编辑:我无法在str.maketrans
的文档中清楚地找到它,但是如果前两个参数使用空字符串,所有内容都将映射为1到1,但删除部分(第三个参数)仍然会发生:
>>> translation = str.maketrans("", "", string.digits)
>>> "2eeŷýéeokjser823 ab.;\t".translate(translation)
'eeŷýéeokjser ab.;\t'
您可以使用
strip
功能:
strings="tycoon0123456789999"
strings.strip("0123456789")
请添加解释。请阅读问题。只从字符串的两端移除字符,而不是在OP请求的中间。