下面的函数返回一个新字符串,但不包含传入的字符串中的标点符号。尽管该代码有效,但是谁可以使用.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
答案 0 :(得分:0)
如果您暗示应该使用replace()方法解决此问题,我建议您首先查看它的文档,自己尝试一下,然后如果仍然遇到问题,请参考此。
>>> a_string = 'He;-;l####lo.'
>>> punctuation_chars = ["'", '"', ",", ".", "!", ":", ";", '#', '@']
>>> for char in punctuation_chars:
... a_string = a_string.replace(char, '')
更新:
如果您担心代码的速度和效率,请参考下面Alderven的答案。答案中有一个链接,指向更有用的资源。
答案 1 :(得分:0)
table = str.maketrans({key: None for key in '\'",.!:;#@'})
print('He;-;l####lo.'.translate(table))
>>> He-llo