我在堆栈溢出时发现了这个例子。我理解它,但对于这样一个简单的方法概念来说似乎有点太多了......从字符串中删除几个字符。
import string exclude = set(string.punctuation) s = ''.join(ch for ch in s if ch not in exclude)
在python 3.1中是否有一个内置字符串方法来执行以下操作:
s = "a,b,c,d,e,f,g,h,i" s = s.strip([",", "d", "h"])
而不是:
s = s.replace(",", "").replace("d", "").replace("h", "")
答案 0 :(得分:2)
我不同意你发现的例子过于复杂。对于您的用例,该代码将变为:
s = ''.join(ch for ch in s if ch not in ",dh")
这对我来说似乎很简洁。但是,有一种替代方案,它更简洁,可能更有效:
s = s.translate(str.maketrans("", "", ",dh"))
免责声明:我实际上没有测试过此代码,因为我无法访问Python 3.1解释器。 Python 2.6中的等价物(我已经测试过)是:
t = ''.join(chr(i) for i in range(256))
s = s.translate(t, ",dh")