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
来比较不同的选项:)。
关于python - 从字符串中删除小写子字符串的快速方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15437589/