从字符串中删除小写子字符串的快速方法?
问题内容:
在Python中(纯文本或使用numpy)从字符串中删除所有小写子字符串的有效方法是什么s
?
s = "FOObarFOOObBAR"
remove_lower(s) => "FOOFOOBAR"
问题答案:
Python3.x答案:
您可以创建一个字符串转换表。创建该翻译表后,您可以重复使用它:
>>> import string
>>> table = str.maketrans('', '', string.ascii_lowercase)
>>> s = 'FOObarFOOObBAR'
>>> s.translate(table)
'FOOFOOOBAR'
以这种方式使用时,第一个参数值映射到第二个参数值(如果存在)。如果不存在,则假定为身份映射。第三个参数是要删除的值的集合。
关心任何人的旧python2.x答案:
我会用str.translate
。如果您通过None
转换表,则仅执行删除步骤。在这种情况下,我将ascii_lowercase
用作要删除的字母。
>>> import string
>>> s = 'FOObarFOOObBAR'
>>> s.translate(None, string.ascii_lowercase)
'FOOFOOOBAR'
我怀疑您会找到一种更快的方法,但是timeit
如果有人有动力,总会有比较不同的选择的方法。