有没有办法str.strip()
在 python 中传递一个列表而不是一个字符?我一直这样做:
unwanted = [c for c in '!@#$%^&*(FGHJKmn']
s = 'FFFFoFob*&%ar**^'
for u in unwanted:
s = s.strip(u)
print s
所需的输出,这个输出是正确的,但应该有某种比我在上面编码的方式更优雅的方式:
oFob*&%ar
Strip 和friends 获取一个代表一组字符的字符串,因此您可以跳过循环:
>>> s = 'FFFFoFob*&%ar**^'
>>> s.strip('!@#$%^&*(FGHJKmn')
'oFob*&%ar'
(这样做的缺点是类似的东西fn.rstrip(".png")
似乎适用于许多文件名,但实际上并不适用)
由于您不希望从中间删除元素,因此您可以使用。
>>> 'FFFFoFob*&%ar**^'.strip('!@#$%^&*(FGHJKmn')
'oFob*&%ar'
否则,使用str.translate()
.
>>> 'FFFFoFob*&%ar**^'.translate(None, '!@#$%^&*(FGHJKmn')
'oobar'