在字符串上使用.translate()删除数字[Python 3]

在字符串上使用.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_

假设我有字符串'2okjser823ab'。如何使用.translate()从字符串中删除所有数字


我看到在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请求的中间。