在 Python 中从字符串中删除数字
-
在 Python 中使用
string.join()
方法中从字符串中删除数字 -
在 Python 中使用
string.translate()
方法从字符串中删除数字 -
在 Python 中使用
re.sub()
方法从字符串中删除数字
本教程将探讨各种方法,以从 Python 中的字符串中删除数字或数字。在数据清理过程中,我们通常会从自然语言处理中的数据中删除数字。
假设我们有一个字符串 abcd1234efg567
,并且我们想从字符串中删除数字以得到类似于 abcdefg
的字符串。我们可以使用以下方法从 Python 中的字符串中删除数字:
在 Python 中使用 string.join()
方法中从字符串中删除数字
string.join(iterable)
方法将一个可迭代对象 iterable
作为输入,使用 string
的值作为分隔符将其元素连接在一起,并返回结果字符串作为输出。
要从字符串中删除数字,我们将首先遍历字符串并选择非数字值,然后将它们传递给 string.join()
方法以将它们连接起来,并获得带有非数字字符的结果字符串作为输出。
下面的示例代码演示了如何使用 string.join()
方法从 Python 中的字符串中删除数字。
string = "abcd1234efg567"
newstring = "".join([i for i in string if not i.isdigit()])
print(newstring)
输出:
abcdefg
在 Python 中使用 string.translate()
方法从字符串中删除数字
Python 2 中的 string.translate(map)
方法将映射表或字典作为输入,并在将指定的字符替换为输入映射表或字典中定义的字符后返回字符串。
下面的示例代码演示了如何在 Python 2 中使用 string.translate()
方法从字符串中删除数字。
from string import digits
string = "abcd1234efg567"
newstring = string.translate(None, digits)
print(newstring)
输出:
abcdefg
在 Python 3 中,string.translate(table)
将翻译表作为输入,而不是像 Python 2 中那样映射表或字典作为输入。因此,我们需要使用 str.maketrans()
方法来获取翻译表,将其用作 string.translate()
方法的输入。
下面的示例代码演示了如何在 Python 3 中使用 string.translate()
和 str.maketrans()
方法从字符串中删除数字:
from string import digits
string = "abcd1234efg567"
table = str.maketrans("", "", digits)
newstring = string.translate(table)
print(newstring)
输出:
abcdefg
在 Python 中使用 re.sub()
方法从字符串中删除数字
re.sub(pattern, replace, string)
以 string
作为输入,并通过用 replace
值替换 pattern
字符串(用正则表达式描述)的非重叠出现来返回字符串。在字符串中。
数字的正则表达式为 [0-9]+
。我们只需要将其作为 pattern
参数传递,并将''
作为 replace
,就可以使用 re.sub()
方法从输入 string
中删除数字。
下面的示例代码演示了如何使用 re.sub()
方法从字符串中删除数字:
import re
string = "abcd1234efg567"
newstring = re.sub(r"[0-9]+", "", string)
print(newstring)
输出:
abcdefg