Nehmen wir diese Zeichenfolge an:
The fox jumped over the log.
Verwandlung in:
The fox jumped over the log.
Was ist die einfachste (1-2 Zeilen), um dies zu erreichen, ohne zu spalten und in Listen zu gehen?
Nehmen wir diese Zeichenfolge an:
The fox jumped over the log.
Verwandlung in:
The fox jumped over the log.
Was ist die einfachste (1-2 Zeilen), um dies zu erreichen, ohne zu spalten und in Listen zu gehen?
Sie können die Technik des String-Splittings auch in einem Pandas DataFrame verwenden, ohne .apply(..) benutzen zu müssen, was nützlich ist, wenn Sie die Operation schnell auf eine große Anzahl von Strings anwenden müssen. Hier ist es in einer Zeile:
df['message'] = (df['message'].str.split()).str.join(' ')
" ".join(foo.split())
ist in Bezug auf die gestellte Frage nicht ganz korrekt, weil sie auch vollständig entfernt einzelne führende und/oder nachgestellte Leerzeichen. Wenn diese also auch durch 1 Leerzeichen ersetzt werden sollen, sollten Sie etwa wie folgt vorgehen:
" ".join(('*' + foo + '*').split()) [1:-1]
Natürlich ist das weniger elegant.
Eine Codezeile zum Entfernen aller zusätzlichen Leerzeichen vor, nach und innerhalb eines Satzes:
sentence = " The fox jumped over the log. "
sentence = ' '.join(filter(None,sentence.split(' ')))
Erläuterung:
*Die übrigen Elemente sollten aus Wörtern oder Wörtern mit Interpunktionen usw. bestehen. Ich habe dies nicht ausgiebig getestet, aber es sollte ein guter Ausgangspunkt sein. Alles Gute!
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
31 Stimmen
Woher kommt Ihre Abneigung gegen Listen? Sie sind ein integraler Bestandteil der Sprache, und " ".join(list_of_words) ist eines der wichtigsten Idiome, um eine Liste von Zeichenketten in eine einzige, durch Leerzeichen getrennte Zeichenkette zu verwandeln.
5 Stimmen
@Tom/@Paul: Für einfache Strings wäre (string) join einfach und nett. Aber es wird komplexer, wenn es andere Leerzeichen gibt, die man NICHT stören will... in diesem Fall wären "while" oder Regex-Lösungen am besten. Nachfolgend habe ich eine "korrekte" String-Verknüpfung gepostet, mit zeitlich begrenzten Testergebnissen für drei Möglichkeiten, dies zu tun.