Ich möchte eine Zeichenfolge durch eine Liste von Indizes aufteilen, wobei die geteilten Segmente mit einem Index beginnen und vor dem nächsten enden.Zerlegen einer Zeichenfolge nach einer Liste von Indizes
Beispiel:
s = 'long string that I want to split up'
indices = [0,5,12,17]
parts = [s[index:] for index in indices]
for part in parts:
print part
Dies wird zurück:
lange Zeichenfolge, die ich will aufzuspalten
Zeichenfolge, die ich will aufzuspalten
, die ich möchte Aufteilen
Ich möchte aufteilen
Ich versuche zu bekommen:
lange
String
dass
Ich möchte aufzuspalten
Ein anderer Weg ist, '[s [i: j] für i, j in izip_longest (Indizes, Indizes [1:]))] aber ich mag deinen Weg besser! – jamylak
Dies kopiert die Indexliste mit 'indices [1:]' und erstellt eine neue Liste mit doppelter Größe durch die 'zip' Funktion -> Schlechte Performance und Speicherverbrauch. – schlamar
@ ms4py Das ist gut, Leistung ist in diesem Fall kein Problem, das ist eine sehr lesbare Lösung. Wenn Leistung ein Problem ist, kann mein Vorschlag verwendet werden. – jamylak