【问题标题】:Removing first and last punctuation from python从python中删除第一个和最后一个标点符号
【发布时间】:2021-11-25 00:20:54
【问题描述】:

我有以下问题,我想删除开头和结尾的标点符号,但保留中间的标点符号。
例子。 \

[':Hamburger{', 'word>', 'don´t', 'isn´t,'] 

这应该会转变

['Hamburger', 'word', 'don´t', 'isn´t']

如果有人可以帮助我,我将不胜感激

【问题讨论】:

标签: python list punctuation


【解决方案1】:

您可以为此使用正则表达式。只需 import re 在文件的开头,然后您可以使用以下行替换所有标点符号以及行的开头或结尾:

for el in list:
    el = re.sub("^[^\w\s]|[^\w\s]$", "", el)

【讨论】:

    【解决方案2】:

    string 模块有一个预定义的常用标点字符字符串:

    >>> from string import punctuation as punct
    >>> punct
    '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
    

    您可以将其与str.strip 结合使用来剥离每个字符串:

    >>> "<>.,.,.!TEST<>>..]}".strip(punct)
    'TEST'
    

    def make_pretty(word):
        from string import punctuation as punct
        return word.strip(punct)
    
    words = [':Hamburger{', 'word>', 'don´t', 'isn´t,']
    
    print(list(map(make_pretty, words)))
    

    输出:

    ['Hamburger', 'word', 'don´t', 'isn´t']
    

    话虽如此,string.punctuation 并不详尽。例如,字符 ´ 不存在,因此不会被删除。

    【讨论】:

      猜你喜欢
      • 2018-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 2013-12-12
      • 1970-01-01
      相关资源
      最近更新 更多