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?
Ich habe nicht viel in die anderen Beispiele hineingelesen, aber ich habe gerade diese Methode entwickelt, um mehrere aufeinanderfolgende Leerzeichen zu konsolidieren.
Es verwendet keine Bibliotheken und ist zwar relativ lang, was die Länge des Skripts angeht, aber es ist keine komplexe Implementierung:
def spaceMatcher(command):
"""
Function defined to consolidate multiple whitespace characters in
strings to a single space
"""
# Initiate index to flag if more than one consecutive character
iteration
space_match = 0
space_char = ""
for char in command:
if char == " ":
space_match += 1
space_char += " "
elif (char != " ") & (space_match > 1):
new_command = command.replace(space_char, " ")
space_match = 0
space_char = ""
elif char != " ":
space_match = 0
space_char = ""
return new_command
command = None
command = str(input("Please enter a command ->"))
print(spaceMatcher(command))
print(list(spaceMatcher(command)))
Um Leerraum zu entfernen, d. h. Leerraum am Anfang, am Ende und zwischen den Wörtern, verwenden Sie:
(?<=\s) +|^ +(?=\s)| (?= +[\n\0])
Die erste or
befasst sich mit führenden Leerzeichen, die zweite or
befasst sich mit dem führenden Leerzeichen am Anfang der Zeichenkette und das letzte mit dem nachgestellten Leerzeichen.
Unter diesem Link finden Sie einen Test zum Nachweis der Verwendung.
https://regex101.com/r/meBYli/4
Dies ist zu verwenden mit dem re.split Funktion.
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.