例如:
asking="hello! what's your name?"
我可以这样做吗?
asking.strip("!'?")
答案 0 :(得分:17)
一个非常简单的实现是:
out = "".join(c for c in asking if c not in ('!','.',':'))
并继续添加任何其他类型的标点符号。
更有效的方法是
import string
stringIn = "string.with.punctuation!"
out = stringIn.translate(stringIn.maketrans("",""), string.punctuation)
编辑:这里有关于效率和其他实现的更多讨论: Best way to strip punctuation from a string in Python
答案 1 :(得分:13)
import string
asking = "".join(l for l in asking if l not in string.punctuation)
使用string.punctuation
进行过滤。
答案 2 :(得分:0)
这样可行,但可能有更好的解决方案。
asking="hello! what's your name?"
asking = ''.join([c for c in asking if c not in ('!', '?')])
print asking
答案 3 :(得分:0)
Strip不起作用。它只删除前导和尾随实例,而不是之间的所有内容:http://docs.python.org/2/library/stdtypes.html#str.strip
玩过滤器:
import string
asking = "hello! what's your name?"
predicate = lambda x:x not in string.punctuation
filter(predicate, asking)