0

我可以循环执行以下操作,但正在寻找一种更清洁的方法或更好的方法。

我有一个可能超过 100,000 个字符的字符串。

例子:

somestring,otherstring,mystring,blahstring等......

我需要将字符串分解为多个字符串或一个列表,每个部分包含少于 30,000 个字符,而仅在分隔符处切片,在此示例中为逗号。

就像我之前说的那样,我写了一个 for 循环,我在几行中管理它,但它很乱,我想了解更多关于 python 的知识,所以我想我会在这里看到更好的方法来处理这个问题。谢谢你的任何指导。

4

2 回答 2

0

pythonstr类(字符串)包含一个名为split. 您要做的是调用s.split(','). 您可以用您选择的分隔符替换逗号。这将返回一个字符串列表。分隔符将从列表中的每个字符串中删除。

于 2013-06-04T15:43:28.337 回答
0

我会这样做:

chunks = []      // used to store the smaller chunks
maxlen = 30000   // maximum chunk size

while True:
    if len(myString) <= maxlen:    
        chunks.append(myString)   // add the last chunk
        break                     // done

    sepIndex = myString.rfind(delim, 0, maxlen)  // find last delimiter < maxlen
    chunks.append(myString[:sepIndex])           // add it to chunks
    myString = myString[sepIndex + 1:]           // remove it and delimiter

如果您需要保留原始字符串,请对原始字符串的副本进行操作。

PS 该算法与自动换行算法非常相似(例如,在 80 个字符以下的空间上拆分),因此您也可以搜索这些算法。

于 2013-06-04T15:48:08.023 回答