如何替换 Python 中字符串中的数字?

How to replace a number in a string in Python?

我需要搜索一个字符串并检查它的名称中是否包含数字。如果是这样,我想用任何东西替换它。我已经开始做类似的事情,但我没有找到解决问题的办法。

table = "table1"

if any(chr.isdigit() for chr in table) == True:
    table = table.replace(chr, "_")
    print(table)

# The output should be "table"

有什么想法吗?

您可以通过多种不同的方式做到这一点。下面是如何使用 re 模块完成的:

import re

table = 'table1'

table = re.sub('\d+', '', table)
table = "table123"

for i in table:
    if i.isdigit():
        table = table.replace(i, "")
print(table)

这听起来像是 str.translate 方法的任务,你可以做

table = "table1"
table = table.translate("".maketrans("","","0123456789"))
print(table) # table

2 maketrans 的第一个参数用于替换 character-for-character,因为我们不需要它,我们使用空 strs,第三个(可选)参数是要删除的字符。

我发现这可以快速删除数字。

table = "table1"
table_temp =""
for i in table:
   if i not in "0123456789":
      table_temp +=i
print(table_temp)

如果您不想导入任何模块,您可以尝试:

table = "".join([i for i in table if not i.isdigit()])
char_nums = [chr for chr in table if chr.isdigit()]

for i in char_nums:
    table = table.replace(i, "")
print(table)