So verwenden Sie die split()-Methode in Python

In diesem Tutorial erfahren Sie, wie Sie die Methode split() von Python verwenden, um einen String in eine Liste von Strings aufzuteilen.

Wenn Sie mit Python-Strings arbeiten, können Sie mehrere integrierte String-Methoden verwenden, um modifizierte Kopien von Strings zu erhalten, z. B. Konvertieren in Großbuchstaben, Sortieren eines Strings und mehr. Eine solche Methode ist .split(), die einen Python-String in eine Liste von Strings aufteilt, und wir werden durch Codierungsbeispiele mehr darüber erfahren.

Am Ende des Tutorials werden Sie Folgendes gelernt haben:

  • wie die Methode .split() funktioniert
  • wie man den Split mit den Parametern sep und maxsplit anpasst

Lass uns anfangen!

Syntax der split()-Methode in Python

Hier ist die allgemeine Syntax, um die split()-Methode von Python für eine beliebige gültige Zeichenfolge zu verwenden:

string.split(sep, maxsplit)

# Parameters:
sep, maxsplit

# Returns:
A list of strings

String kann hier ein beliebiger gültiger Python-String sein.

Sowohl die Parameter sep als auch maxsplit sind optional.

  • sep bezeichnet das Trennzeichen, an dem Sie die Zeichenfolge teilen möchten. Es sollte als Zeichenfolge angegeben werden.
  • maxsplit ist eine Ganzzahl, die angibt, wie oft Sie die Zeichenfolge teilen möchten.

Ihre Standardwerte werden verwendet, wenn Sie keine optionalen Parameter angeben.

  • Wenn Sie den Sep-Wert nicht explizit angeben, werden Leerzeichen als Standardtrennzeichen verwendet.
  • Wenn Sie den Wert für maxsplit nicht angeben, ist der Standardwert -1, was bedeutet, dass die Zeichenfolge bei allen Vorkommen des Trennzeichens geteilt wird.

Formulierung der Syntax im Klartext:

Die split()-Methode teilt eine Zeichenfolge maxsplit mehrmals auf, wenn das durch den Parameter sep angegebene Trennzeichen auftritt.

Nachdem wir nun die Syntax der Python-Split()-Methode gelernt haben, wollen wir mit dem Codieren einiger Beispiele fortfahren.

Teilen Sie einen Python-String in eine Liste von Strings auf

Wenn Sie haben Python 3 auf Ihrem Computer installiert ist, können Sie mit diesem Lernprogramm codieren, indem Sie die folgenden Codeausschnitte in einer Python-REPL ausführen.

Um die REPL zu starten, führen Sie einen der folgenden Befehle vom Terminal aus:

$ python
$ python -i

▶️ Sie können diese Beispiele auch im Python-Editor von wdzwdz ausprobieren.

In diesem Beispiel ist py_str ein Python-String. Rufen wir die Methode .split() für py_str ohne Parameter auf und beobachten die Ausgabe.

py_str = "Learn how to use split() in Python"
py_str.split()

# Output
['Learn', 'how', 'to', 'use', 'split()', 'in', 'Python']

Wie oben zu sehen ist, wird die Zeichenfolge bei allen Vorkommen von Leerzeichen geteilt.

  Die 12 besten Elektro-Skateboards, die Sie jetzt bekommen sollten

Teilen Sie einen Python-String beim Auftreten von Trennzeichen

#1. Lassen Sie uns als erstes Beispiel die Zeichenfolge py_str mit doppelten Unterstrichen (__) als Trennzeichen aufteilen.

py_str = "All__the__best"
py_str.split(sep='__')

# Output
['All', 'the', 'best']

#2. Nehmen wir ein anderes Beispiel. Hier hat py_str drei Sätze, die jeweils durch einen Punkt (.) abgeschlossen werden.

py_str = "I love coding. Python is cool. I'm learning Python in 2022"
py_str.split(sep='.')

# Output
['I love coding', ' Python is cool', " I'm learning Python in 2022"]

▶️ Wenn wir die Methode .split() für diesen String aufrufen, mit ‚.‘ Als Trennzeichen hat die resultierende Liste drei Sätze, wie in der obigen Codezelle zu sehen ist.

#3. Lassen Sie uns ein paar Fragen stellen:

  • Was passiert, wenn das Trennzeichen nie im String vorkommt?
  • Wie erfolgt die Aufteilung in diesem Fall?

Hier ist ein Beispiel:

Wir versuchen, py_str beim Auftreten von Sternchen aufzuteilen

py_str = "This line contains no asterisk."
py_str.split(sep='*')

# Output
['This line contains no asterisk.']

– was nicht vorkommt.

Da in diesem Fall keine Teilung möglich ist, enthält die resultierende Liste den gesamten String.

Im nächsten Abschnitt werden wir sehen, wie wir die Methode split() auf den Inhalt einer Textdatei anwenden können.

Teilen Sie den Inhalt einer Python-Datei

Wenn Sie mit Textdateien in Python arbeiten, müssen Sie möglicherweise den Inhalt der Datei basierend auf einem Trennzeichen aufteilen, um die Verarbeitung zu vereinfachen.

Hier ist eine Beispieltextdatei:

with open('sample.txt') as f:
  content = f.read()
  str_list= content.split(sep='...')
  for string in str_list:
    print(string,end='')

Das folgende Code-Snippet zeigt, wie split für den Inhalt der Beispieltextdatei verwendet wird.

  • Der obige Code macht folgendes:
  • Verwendet den Kontextmanager, um die Textdatei „sample.txt“ zu öffnen und damit zu arbeiten.
  • Liest den Inhalt der Datei mit der Methode .read() für das Dateiobjekt f.
  • Zerlegt den Inhalt beim Auftreten des Trennzeichens Ellipse (…) in eine Liste str_list.
  So blockieren Sie jemanden, ohne dass er es in Viber weiß

Durchläuft str_list, um auf jede Zeichenfolge zuzugreifen, und gibt sie aus.

# Output
This is a sample text file
It contains info on
Getting started with <a href="https://wdzwdz.com/pcap-certification/">programming in Python</a>
According to the 2022 StackOverflow Developer Survey
Python is one of the most-loved programming languages
So what are you waiting for? Start learning!

Hier ist die Ausgabe.

Als Übung können Sie versuchen, den Inhalt einer Textdatei auf ein beliebiges Trennzeichen aufzuteilen.

Teilen Sie einen Python-String in Chunks auf

Wenn Sie eine Zeichenfolge einmal teilen, erhalten Sie zwei Stücke; Wenn Sie es zweimal teilen, erhalten Sie drei.

📋 Im Allgemeinen erhältst du K + 1 Stücke, wenn du eine Zeichenfolge K-mal teilst.

Dies ist unten dargestellt.

Funktionsweise des maxsplit-Parameters (Bild vom Autor)

py_str = "Chunk#1  I'm a larger chunk, Chunk#2"
py_str.split(maxsplit=1)

# Output
['Chunk#1', "I'm a larger chunk, Chunk#2"]

#1. Wir setzen maxsplit gleich 1. Wir haben kein Trennzeichen angegeben, daher erfolgt die Aufteilung standardmäßig auf Leerzeichen.

Obwohl der zweite Block in der Liste Leerzeichen enthält, findet die Teilung nicht statt, da die Teilung jetzt durch den maxsplit-Wert von eins gesteuert wird.

py_str = "Chunk#1 Chunk#2 I'm one large Chunk#3, even though I contain whitespaces"
py_str.split(maxsplit=2)

# Output
['Chunk#1',
 'Chunk#2',
 "I'm one large Chunk#3, even though I contain whitespaces"]

#2. Lassen Sie uns den maxsplit-Wert auf 2 erhöhen und beobachten, wie die Teilung für das folgende Beispiel erfolgt.

Wie im vorherigen Beispiel bestimmt der maxsplit-Wert die Anzahl der vorgenommenen Splits. Wir erhalten drei Chunks, Splits nach dem ersten und zweiten Vorkommen von Whitespace.

#3. Was passiert, wenn Sie maxsplit auf einen Wert setzen, der größer ist als die Anzahl der Vorkommen des Trennzeichens?

py_str = "There, are, only, 4, commas"
py_str.split(maxsplit=8)

# Output
['There,', 'are,', 'only,', '4,', 'commas']

In der folgenden Codezelle setzen wir maxsplit it auf 8, wenn die Zeichenfolge nur vier Kommas enthält.

Hier teilt die Split-Methode py_str bei allen vier Vorkommen eines Kommas. Selbst wenn Sie versuchen, maxsplit auf einen Wert kleiner als -1 zu setzen, z. B. -7, wird die Teilung bei allen Vorkommen des Trennzeichens durchgeführt.

Als nächstes fassen wir alles zusammen, was wir gelernt haben, und verwenden beide sep maxsplit Parameter.

Teilen Sie einen Python-String in Chunks auf einem Separator

py_str = "Chunk#1, Chunk#2, I'm one large Chunk#3, even though I contain a ,"
py_str.split(sep = ',',maxsplit=2)

# Output
['Chunk#1', ' Chunk#2', " I'm one large Chunk#3, even though I contain a ,"]

#1. Angenommen, wir müssen den String py_str beim Auftreten eines Kommas (,) in drei Teile aufteilen. Dazu können wir im Methodenaufruf den sep-Wert auf ‚,‘ und den maxsplit-Wert auf 2 setzen.

  So löschen Sie einen Gruppenchat in WeChat

Wie in der Ausgabe zu sehen ist, erfolgt die Teilung zweimal bei den ersten beiden Vorkommen des Trennzeichens.

#2. Das Trennzeichen sep muss nicht immer ein Sonderzeichen sein. Es kann eine Folge von Sonderzeichen sein, wie die doppelten Unterstriche, die wir zuvor verwendet haben, oder es könnte sogar eine Teilzeichenfolge sein.

py_str = "You need to learn data structures, learn algorithms, and learn more!"
py_str.split(sep = 'learn',maxsplit=2)

# Output
['You need to ', ' data structures, ', ' algorithms, and learn more!']

Lassen Sie uns die Zeichenkette „learn“ als sep-Argument setzen und sehen, wie die Teilung für unterschiedliche Werte von maxsplit erfolgt. Hier setzen wir maxsplit auf 2.

py_str = "You need to learn data structures, learn algorithms, and learn more!"
py_str.split(sep = 'learn',maxsplit=-1)

# Output
['You need to ', ' data structures, ', ' algorithms, and ', ' more!']

#3. Wenn Sie py_str bei allen Vorkommen des Strings „learn“ aufteilen möchten, können wir diese .split()-Methode aufrufen, indem Sie sep = „learn“ setzen – ohne den Parameter maxsplit. Dies entspricht dem expliziten Festlegen des maxsplit-Werts auf -1, wie in der Codezelle unten gezeigt.

Wir sehen, dass die Spaltung bei allen Vorkommen von „lernen“ auftritt.

Einpacken

Ich hoffe, Sie haben jetzt verstanden, wie Sie die Methode .split() mit Python-Strings verwenden.

  • Hier ist eine Zusammenfassung dieses Tutorials:
  • Die in Python eingebaute Methode .split() teilt einen String in eine Liste von Strings auf.
  • Verwenden Sie string.split(), um den String bei allen Vorkommen des Standardtrennzeichens Whitespace zu teilen.

Verwenden Sie string.split(sep,maxsplit), um die Zeichenfolge maxsplit so oft zu teilen, wie das Trennzeichen sep auftritt. Die resultierende Liste hat maxsplit+1 Elemente.

Als nächsten Schritt können Sie lernen, wie Sie überprüfen, ob Python-Strings Palindrome oder Anagramme sind.