ast*_*lop 5 python string python-3.x
假设我有字符串“2okjser823ab”。如何使用 .translate() 从字符串中删除所有数字?
我发现在 Python 2.x 中你可以执行类似 .translate(None, '0123456789') 的操作,但如果我在 Python 3 中尝试这样做,它会告诉我该方法只接受一个参数。
小智 5
看起来 Python 3 有点难;不知道为什么。
\n\n您可以执行以下操作:
\n\n>>> import string\n>>> translation = str.maketrans(string.ascii_letters, string.ascii_letters, string.digits)\n>>> "2okjser823ab".translate(translation)\n\'okjserab\'\nRun Code Online (Sandbox Code Playgroud)\n\n您可能需要string.ascii_letters使用您期望的任何其他输入(string.ascii_letters + string.punctuation + string.whitespace例如 )进行扩展。
编辑:我无法在 的 文档中清楚地找到它str.maketrans,但是如果您对前两个参数使用空字符串,则所有内容都将映射为 1 到 1,但删除部分(第三个参数)仍然会发生:
>>> translation = str.maketrans("", "", string.digits)\n>>> "2ee\xc5\xb7\xc3\xbd\xc3\xa9eokjser823 ab.;\\t".translate(translation)\n\'ee\xc5\xb7\xc3\xbd\xc3\xa9eokjser ab.;\\t\'\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
4471 次 |
| 最近记录: |