新しい答え:私は実際にはないよ
:
1¢2¢3¢4¢5¢6¢7¢8¢9¢10¢
11¢12¢13¢14¢15¢16¢17¢18¢19¢20¢
21¢22
旧答え:出力
def split(text, separator, each):
if each < 1:
raise AttributeError('each must be >= 1')
parts = text.split(separator)
if len(parts) <= each:
return [text]
lines = []
for idx in range(0, len(parts), each):
segment = separator.join(parts[idx:idx + each])
if idx + each < len(parts):
segment = '%s%s' % (segment, separator)
lines.append(segment)
return '\n'.join(lines)
print(split('1¢2¢3¢4¢5¢6¢7¢8¢9¢10¢11¢12¢13¢14¢15¢16¢17¢18¢19¢20¢21¢22', '¢', 10))
エキサクあなたが望む結果が得られるので、私は2つの項目リストを返すコードスニペットを与えます:第1に、分割前の文字列パート、第2に分割後の文字列パート。わずかに異なる結果が必要な場合は、これを簡単に変更することができます。ここで
def split(text, separator, position):
if position < 1:
raise AttributeError('position must be >= 1')
parts = text.split(separator)
if len(parts) <= position:
return [text]
return [separator.join(parts[:position]), separator.join(parts[position:])]
いくつかの例:
>>> split('part0&part1&part2', '&', 1)
['part0', 'part1&part2']
>>> split('part0&part1&part2', '&', 2)
['part0&part1', 'part2']
>>> split('part0&part1&part2', '&', 3)
['part0&part1&part2']
>>> split('part0&part1&part2', '&', 0)
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/Users/paco/Desktop/so/main.py", line 3, in split
raise AttributeError('position must be >= 1')
AttributeError: position must be >= 1
あなたの質問を編集し、我々は何が起こっているか見ることができるように完全なエラー/例外を追加してください。 –
delimeter memoryエラーを分割中にエラーが発生しました – manyatha