我还在学习Python,并且我有一个问题我一直无法解决。我有一个非常长的字符串(数百万行),我希望根据指定的分隔符数来分割成更小的字符串长度。Python - 按分隔符数量分割大字符串
例如:
ABCDEF
//
GHIJKLMN
//
OPQ
//
RSTLN
//
OPQR
//
STUVW
//
XYZ
//
在这种情况下,我想根据“//”分裂和分隔符的第n次出现之前返回的所有行的字符串。
因此,通过由1 //分割字符串的输入将返回:
ABCDEF
2由//分割字符串的输入将返回:
ABCDEF
//
GHIJKLMN
的输入分割字符串由// 3将返回:
ABCDEF
//
GHIJKLMN
//
OPQ
等等... 然而,原来的200万行字符串的长度似乎是一个问题,当我简单地尝试拆分整个字符串和“//”并且仅使用单个索引时。 (我得到一个内存错误)也许Python不能在一个分割中处理这么多行?所以我不能那样做。
我在寻找,我并不需要将整个字符串分成十万索引时,我可能只需要100的方式,而只是从头开始,直到某一点,停止和返回在它之前的一切,我认为也可能更快?我希望我的问题尽可能清楚。
有没有简单或优雅的方式来实现这一目标?谢谢!
为什么不使用发生器读取前n个项目,直到读取所需数量的“//”分隔符?这样你只能读你需要的东西 –
谢谢,我还会看看发电机,因为我不熟悉它们。 – Indie
请显示您迄今为止尝试过的代码。 –