0

私はループで次のことを行うことができましたが、これを行うためのよりクリーンな方法、またはより良い方法を探していました。

100,000 文字を超える文字列があります。

例:

somestring、otherstring、mystring、blahstringなど....

文字列を複数の文字列またはリストに分割する必要があります。各セクションは 30,000 文字未満で、区切り文字 (この例ではコンマ) でのみスライスします。

前に言ったように、いくつかの行で管理する for ループを書きましたが、それは面倒で、Python についてもっと学びたいので、ここでこれを処理するより良い方法があると思いました。方向性をありがとう。

4

2 に答える 2

0

pythonstrクラス (strings) には、 というメソッドが含まれてい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 に答える