Python:分割和分析字符串的最有效方法

时间:2015-08-03 17:19:31

标签: python regex string split

我从其他答案中得知,使用字符串上的string.split()会比短字符串快得多。我正在处理的一个特定脚本要求我在分隔符上分割一个字符串,并根据它后面的分隔符分析特定方式的每个分割。例如,我的字符串可能看起来像abd-123-32-few-333-1212等....在这种情况下,分隔符是' - '。根据具体情况,我要么需要几个或所有分裂(也就是说,对于这个例子,我可能需要32和333,我需要知道32是在第二个破折号之后和33在第4个之后) 。

我目前的解决方案是拆分分隔符,然后遍历该列表以获取我需要的值。我很好奇的是,如果有更好/更快的方法来做到这一点。我已经确认Regex速度较慢,不能满足我的需求开箱即用......还有其他任何建议吗?

1 个答案:

答案 0 :(得分:3)

这可能会解决您的问题,但由于您没有发布您的代码,我不知道它是相似还是不同,还是更慢或更快:

s = 'abd-123-32-few-333-1212'
check = {'32', '333'}
s = s.split('-')
print(dict((y, x) for (x, y) in enumerate(s) if y in check))

打印:

{'32': 2, '333': 4}

FWIW,您应该在函数内而不是在脚本的主体中运行这样的代码,因为本地查找比全局查找要快得多。