【问题标题】:python: removing all punctuations using string.punctuation EXCEPT a few otherspython:使用 string.punctuation 删除所有标点符号,除了其他一些
【发布时间】:2020-04-29 13:48:45
【问题描述】:

我正在尝试使用带有代码的 string.punctuation 删除名为 fs 的字符串中的标点符号:

fs = fs.translate({ord(i): None for i in string.punctuation}) 

但在正文中,有几个下划线 (_)

如何实现我的代码以使其忽略下划线并删除所有其他代码?

是这样的吗:

fs = fs.translate({ord(i): None for i in string.punctuation if '_' not in string.punctuation})

【问题讨论】:

  • 您必须检查您迭代的变量(一个一个地保存单个字符)。

标签: python string punctuation


【解决方案1】:

string.punctuation 本身只是一个字符串,因此我们可以使用该字符串的修改版本:{ord(i): None for i in string.punctuation.replace('_', '')}

您正在寻找的更通用的技术是:if 将分别检查 for 每个 i 值,并在检查为假时抑制输出(字典的键值对)。所以条件不应该像... if '_' not in string.punctuation,而是简单的... if i != '_'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 2019-08-04
    • 2020-05-14
    • 2021-05-17
    • 2019-10-29
    • 1970-01-01
    • 2016-10-23
    相关资源
    最近更新 更多