如何使用Python Replace方法制作撑腰脱衣舞娘

时间:2019-02-08 05:54:38

标签: python

下面的函数返回一个新字符串,但不包含传入的字符串中的标点符号。尽管该代码有效,但是谁可以使用.replace()方法完成此操作。这部分分配的提示是使用.replace()方法,但是字符串是不可变的,那么如何使用.replace()方法删除标点符号?谢谢。

punctuation_chars = ["'", '"', ",", ".", "!", ":", ";", '#', '@']

def strip_punct(s):
    new_s = ''
    for c in s:
        if c in punctuation_chars:
            continue
        new_s += c

    return new_s

a_string = 'He;-;l####lo.'
print(strip_punct(a_string)) # prints He-llo

2 个答案:

答案 0 :(得分:0)

如果您暗示应该使用replace()方法解决此问题,我建议您首先查看它的文档,自己尝试一下,然后如果仍然遇到问题,请参考此。

>>> a_string = 'He;-;l####lo.'
>>> punctuation_chars = ["'", '"', ",", ".", "!", ":", ";", '#', '@']
>>> for char in punctuation_chars:
...     a_string = a_string.replace(char, '')  

更新
如果您担心代码的速度和效率,请参考下面Alderven的答案。答案中有一个链接,指向更有用的资源。

答案 1 :(得分:0)

fastest way是:

table = str.maketrans({key: None for key in '\'",.!:;#@'})
print('He;-;l####lo.'.translate(table))
>>> He-llo