ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python 中从字符串中删除数字

2021-07-30 16:34:06  阅读:161  来源: 互联网

标签:string 删除 Python 字符串 translate 数字


  1. 在 Python 中使用 string.join() 方法中从字符串中删除数字
  2. 在 Python 中使用 string.translate() 方法从字符串中删除数字
  3. 在 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

标签:string,删除,Python,字符串,translate,数字
来源: https://www.cnblogs.com/hailin2018/p/15080241.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有