gpt4 book ai didi

python - 寻找一种在全大写单词上拆分字符串的好方法

转载 作者:太空宇宙 更新时间:2023-11-04 01:22:20 24 4
gpt4 key购买 nike

例如我有一个任意字符串:

var = '我有一个字符串,我想要 GE 和 APPLES,但没有别的'

在 python 中拆分字符串的最佳方法是什么,这样我就可以获得 'GE''APPLES'。在 Java 中,我会按空格拆分,然后检查每个数组元素是否有两个或多个连续的字母,然后抓取符合的字母。

在 Python 中有没有更好的方法,我不是特别精通 Python 的正则表达式?

最佳答案

使用 str.isupperstr.split 和列表理解:

>>> var = 'I have a string I want GE and APPLES but nothing else'
>>> [x for x in var.split() if x.isupper() and len(x) > 1 ]
['GE', 'APPLES']

使用正则表达式:

>>> import re
>>> re.findall(r'\b[A-Z]{2,}\b', var)
['GE', 'APPLES']

时序比较:

>>> var = 'I have a string I want GE and APPLES but nothing else'*10**5
>>> %timeit [x for x in var.split() if x.isupper() and len(x) > 1 ]
1 loops, best of 3: 773 ms per loop
>>> %timeit re.findall(r'\b[A-Z]{2,}\b', var)
1 loops, best of 3: 491 ms per loop

#输入大字:

>>> var = ' '.join(['FOO'*1000, 'bar'*1000, 'SPAM'*1000]*1000)
>>> %timeit [x for x in var.split() if x.isupper() and len(x) > 1 ]
1 loops, best of 3: 224 ms per loop
>>> %timeit re.findall(r'\b[A-Z]{2,}\b', var)
1 loops, best of 3: 483 ms per loop

关于python - 寻找一种在全大写单词上拆分字符串的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20434637/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com