Ich habe eine lange Zeichenfolge, die ich in eine Datei speichern möchte. Wörter sind durch Leerzeichen getrennt. Die Summe der Wörter im langen String ist durch 3 teilbar.So teilen Sie die Zeichenfolge so, dass sie weniger als n Zeichen mit einer Drehung enthält
Im Grunde bin ich auf der Suche nach einer Möglichkeit, String in Stücke zu teilen. Jedes Stück ist kleiner als n Zeichen und die Anzahl der Wörter in Stücken ist ebenfalls durch 3 teilbar.
z.B.
>>> longstring = "This is a very long string and the sum of words is divisible by three"
>>> len(longstring.split())
>>> 15
sagen max Leitungslänge beträgt n = 30:
>>>split_string(longstring, 30)
['This is a very long string', 'and the sum of words is', 'divisible by three']
Zur Übersicht:
- Die Regeln sind: Keine Zeile länger als n Zeichen.
- Eine Wendung ist, dass jede neue Zeile mehrere Wörter enthalten muss.
Bisher habe ich versucht TextWrap verwenden, aber ich weiß nicht, wie 2.
import textwrap
textwrap.fill(long_line, width=69)
Ich bin nicht davon überzeugt, dass Ihre zweite Bedingung immer möglich ist. Wie würden Sie eine Zeile mit 10 Wörtern in Zeilen von Vielfachen von 3 teilen? Sind Eingaben garantiert, die ein Vielfaches von 3 sind? –
Die Gesamtzahl der Wörter in einer Zeichenfolge ist durch 3 teilbar. – ad1v7
Ich würde Ihre Zeichenfolge in Wörter aufteilen, dann für jedes Wort testen, ob es den aktuellen Satz zu lang machen würde. Ist dies der Fall, fixiere den aktuellen Satz und verwende das Wort als Anfang der nächsten Zeile. –