我正在尝试生成给定字符串中所有重叠的 n 长度子字符串的列表。
例如,对于 n of6
和字符串,"hereismystring"
我将生成 list ["hereis", "ereism", "reismy", ..., "string"]
。我现在使用的简单代码如下所示:
n = 6
l = len(string)
substrings = [string[i:(i + n)] for i in xrange(l - n + 1)]
很容易。问题是,我想加快速度(我有很多很长的字符串)。Python中有更快的技术吗?考虑到 Python 的字符串例程无论如何都在 C 语言中,是否会下降到 Cython 的帮助?
作为参考,对于 500 长度的字符串和 30 的 n,此技术在我的机器(新的 Macbook Pro)上大约需要 100us。
我在这里先向您的帮助表示感谢!