【发布时间】:2020-11-17 01:27:03
【问题描述】:
我有一个非常长的文本文件,我打开并保存到一个字符串变量中,我希望删除其中的所有特殊字符并用空格替换它。我不允许导入其他库,所以我必须保持它非常幼稚。我想通过我的文本文件运行一个 for 循环,比较给定的标点符号是否在文本中,然后用“”替换它。然后我会打印更新的文本字符串,出于某种原因(可能是一个受过训练的眼睛的简单修复)我无法删除特殊字符。根据说明,我需要先删除特殊字符,然后再将文本文件的字符串拆分为单词列表。
alice_txt = "Hi! Is my name Alice? I can\"t be too sure about that!"
def omit_punctuation():
punct_string = ",.!?;:][-\""
punct_list = [",",".","!","?",";",":","]","[","-","\""]
punct_omit = ""
for mark in punct_list:
if mark in alice_txt:
punct_omit += alice_txt.replace(mark, " ")
print(punct_omit)
omit_characters()
输出:
嗨,我叫爱丽丝吗?我不能太确定你好!我的名字是爱丽丝吗?我不能太确定!你好!我叫爱丽丝吗?我不能太确定!
而不是想要的:嗨,我叫 Alice,我不太确定
我已经使用 punctuation_list 和 :_string 尝试了 for 循环。它看起来(如代码所述)正在查看每个标记,并且当它找到该标记时,它会替换迭代中的每个连续标记,但不会存储每次下一次迭代的替换。在这种方法中我不明白什么?
【问题讨论】:
-
请提供预期的minimal, reproducible example。显示中间结果与您的预期不同的地方。您的代码片段无法执行,并且您没有发布所需的输出示例。
-
@Prune 对此感到抱歉!我想我现在修复了我的帖子
-
好多了!我删除了我的关闭投票并撤销了我的反对票。