python - 从字符串中删除小写子字符串的快速方法?

标签 python string numpy

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/

相关文章:

python - 得到一系列列表的笛卡尔积?

c++ - 如何迭代字符串 vector 的 vector ? (c++)

Javascript:查找文本文档中所有出现的单词

java - 在 Java 中检查一组字符串中的包含

c++ - 如何让PyPy识别线性代数(Intel MKL、OpenBLAS)库?环境变量问题?

python - 乘以特定维度矩阵

python - 读取位级别的二进制数据

Python - CSV 阅读器 - 无法读取所有行

python - 如何从 dict 获取值列表?

python - 为每个用户创建唯一的个人资料页面 python