龙空技术网

如何在 Python 中删除字符串、列表、文件中的标点符号

信息科技云课堂 415

前言:

当前兄弟们对“python循环删除集合中的元素和元素”大体比较着重,姐妹们都想要学习一些“python循环删除集合中的元素和元素”的相关资讯。那么小编同时在网摘上搜集了一些对于“python循环删除集合中的元素和元素””的相关资讯,希望兄弟们能喜欢,咱们快快来学习一下吧!

用于将一篇文章分成句子所使用的标记都被称为标点符号。从广义上讲,英语语法中列出了 14 个标点符号。它们是句号、问号、感叹号、逗号、分号、冒号、破折号、连字符、括号、括号、大括号、撇号、引号和省略号。中文的标点符号更多样。在本文中,我们将看到如何使用 Python 从我们的数据中删除这些标点符号。

使用循环遍历删除标点符号

biaodian = '''!()-[]{};:'"\,<>./?@#$%^&*_~!?。,、;:“”『』()《》〈〉「」﹃﹄‘’“”〝〞〔〕〖〗〘〙〚〛~]''' str1 = "Hello,World!(你好,世界!)"str2 = ""for char in str1:   if char not in biaodian:       str2 = str2 + char print(str2)# 输出:HelloWorld你好世界

上面的示例代码使用 for 循环迭代提供的字符串。在每次迭代中检查字符是否是标点符号,如果不是标点符号,将连接到新字符串。最终,输出了清理标点符号后的字符串。

使用正则表达式删除标点符号

Python 为我们提供了正则表达式库(re)来管理各种正则表达式。通常,字符串搜索算法利用模式对字符串进行“查找”或“查找和替换”操作。

Python中的正则表达式带有 sub() 函数,我们将使用该函数,从 python 中的字符串中删除标点符号。

「re.sub 的语法」

re.sub(pattern, replacement, original_string)

pattern:我们要替换的标点符号。 replacement:模式替换字符串(一般是空字符串)。 original_string:我们需要从中删除标点符号的原始字符串。

import restr1 = "Hello,World!(你好,世界!)"str2 = re.sub(r'[^\w\s]','',str1)print(str2)# 输出:HelloWorld你好世界
使用 translate() 方法删除字符串中的标点符号

translate() 方法是在 python 中删除字符串中标点符号的最快方法。translate() 函数包含在 string 库中。所以,我们需要导入 string。

translate() 方法返回一个字符串,其中某些特定字符被替换为字典或映射表中的字符。

import stringstr1 = "Hello,World!(你好,世界!)"str2 = str1.translate(str.maketrans('', '', string.punctuation))print(str2)# 输出:HelloWorld(你好,世界!)

string.punctuation 是 string 库中的一个常量,包含了所有英文标点符号。

str.maketrans() 此方法返回一个可供 str.translate() 使用的转换对照表。

对于中文标点符号,可以调用 zhon 库中的 punctuation 即可得到中文的标点符号集合。

from zhon.hanzi import punctuationstr1 = "Hello,World!(你好,世界!)"str2 = str1.translate(str.maketrans('', '', punctuation))print(str2)# 输出:Hello,World!你好世界
从列表中删除标点符号

列表是 Python 中最流行的内置数据类型之一。因此,我们必须了解如何从列表中删除标点符号。

list1 = ["Hello,","World!","(你好,","世界!)"]def remove_punc(string):    biaodian = '''!()-[]{};:'"\,<>./?@#$%^&*_~!?。,、;:“”『』()《》〈〉「」﹃﹄‘’“”〝〞〔〕〖〗〘〙〚〛~]'''     for i in string:          if i in biaodian:              string = string.replace(i, "")     return stringlist2 = [remove_punc(i) for i in list1]print(list2) # 输出:['Hello', 'World', '你好', '世界']

有多种方法可以循环访问列表。在上面的示例中,我们使用列表推导来遍历列表的所有元素。我们创建一个自定义函数,该函数接受字符串作为参数并删除字符串的所有标点符号。删除过程是通过将所有标点符号替换为空字符来完成的。

从文件中删除标点符号

本示例中文本文件 1.txt 的内容是:Hello,World!(你好,世界!)。

def remove_punc(string):    biaodian = '''!()-[]{};:'"\,<>./?@#$%^&*_~!?。,、;:“”『』()《》〈〉「」﹃﹄‘’“”〝〞〔〕〖〗〘〙〚〛~]'''     for i in string:          if i in biaodian:              string = string.replace(i, "")     return string try:    with open("1.txt",'r',encoding="utf-8") as f:        data = f.read()    with open("1.txt","w+",encoding="utf-8") as f:        f.write(remove_punc(data))    print("移除标点符号完成", "1.txt")except FileNotFoundError:    print("未找到文件")

创建了一个自定义函数来删除所有字符串标点字符。然后我们使用 open() 打开文件进行读取、重写。为了避免“找不到文件”错误,我们使用 try-except 方法。

文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!

标签: #python循环删除集合中的元素和元素