
Dieser Artikel genau, wie SIE Buchstaben nach Trennzeichen, Zeilenumbrüchen, regelmäßigen Ausdrücken und der Anzahl der Zeichen in Python aufteilen.
- Durch Trennzeichen trennen:
split()
- Geben Sie das Trennzeichen an:
sep
- Geben Sie die maximale Anzahl von Splits an:
maxsplit
- Geben Sie das Trennzeichen an:
- Durch Trennzeichen von rechts getrennt:
rsplit()
- Trennung durch Zeilenumbruch:
splitlines()
- Nach Regex aufgeteilt:
re.split()
- Geteilt durch mehrere verschiedene Trennzeichen
- Verketten Sie eine Liste von Zeichenfolgen
- Split basierend auf der Anzahl der Zeichen: Slice
Weitere Informationen zum Verketten und Extrahieren von Zeichenfolgen finden Sie im following Artikel.
Durch Trennzeichen trennen:split()
Verwenden Sie die Methode split(), um nach Trennzeichen zu teilen.
Wenn das Argument weggelassen WIRD, WIRD es durch Leerzeichen wie Leerzeichen, Zeilenumbrüche n und Tabulatoren t geteilt. Auf nebeneinander liegende Leerzeichen werden zusammen verarbeitet.
Eine Liste der Wörter wird zurückgegeben.
s_blank = 'one two threenfourtfive'
print(s_blank)
# one two three
# four five
print(s_blank.split())
# ['one', 'two', 'three', 'four', 'five']
print(type(s_blank.split()))
# <class 'list'>
Verwenden Sie join(), wie unten beschrieben, um eine Liste zu einem String zu verketten.
Geben Sie das Trennzeichen an:sep
Geben Sie ein Trennzeichen für den ersten Parameter sep an.
s_comma = 'one,two,three,four,five'
print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']
print(s_comma.split('three'))
# ['one,two,', ',four,five']
Wenn SIE mehrere Trennzeichen angeben möchten, verwenden SIE reguläre Ausdrücke wie später beschrieben.
Geben Sie die maximale Anzahl von Splits an:maxsplit
Geben Sie für den zweiten Parameter maxsplit die maximale Anzahl an Splits an.
Wenn maxsplit angegeben ist, werden höchstes maxsplit-Splits durchgeführt.
print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
So ist es sinnvoll, die erste Zeile eines Strings zu löschen.
If sep=’n‘, maxsplit=1 ist, can SIE Eine Liste von Strings erhalten, sterben durch das erste Zeilenumbruchzeichen n geteilt WIRD. Das zweite Element [1] dieser Liste ist eine Zeichenfolge ohne die erste Zeile. Da es das letzte Element ist, kann es als [-1] angegeben werden.
s_lines = 'onentwonthreenfour'
print(s_lines)
# one
# two
# three
# four
print(s_lines.split('n', 1))
# ['one', 'twonthreenfour']
print(s_lines.split('n', 1)[0])
# one
print(s_lines.split('n', 1)[1])
# two
# three
# four
print(s_lines.split('n', 1)[-1])
# two
# three
# four
Ebenso, um die ersten beiden Zeilen zu löschen:
print(s_lines.split('n', 2)[-1])
# three
# four
Durch Trennzeichen von rechts getrennt:rsplit()
rsplit() teilt von der rechten Seite des Strings.
Das Ergebnis unterscheidet sich nur dann von split(), wenn der zweite Parameter maxsplit angegeben ist.
Wenn SIE die letzte Zeile löschen möchten, verwenden SIE auf dieselbe Weise wie split() rsplit().
print(s_lines.rsplit('n', 1))
# ['onentwonthree', 'four']
print(s_lines.rsplit('n', 1)[0])
# one
# two
# three
print(s_lines.rsplit('n', 1)[1])
# four
So löschen Sie die letzten beiden Zeilen:
print(s_lines.rsplit('n', 2)[0])
# one
# two
Trennung durch Zeilenumbruch:splitlines()
Es gibt auch ein splitlines() zum Teilen nach Liniengrenzen.
Wie in den vorherigen Beispielen werden split() und rsplit() standardmäßig mit Leerzeichen einschließlich Zeilenumbruch getrennt, und SIE können den Zeilenumbruch auch mit dem Parameter sep angeben.
Es ist jedoch oft besser, splitlines() zu verwenden.
Zum Beispiel eine geteilte Zeichenfolge, die n (LF, verwendet in Unix-Betriebssystemen einschließlich Mac) und rn (CR + LF, verwendet in Windows-Betriebssystemen) enthält.
s_lines_multi = '1 onen2 tworn3 threen'
print(s_lines_multi)
# 1 one
# 2 two
# 3 three
Wenn split() angewendet wird, wird standardmäßig nicht nur durch Zeilenumbrüche, sondern auch durch Leerzeichen geteilt.
print(s_lines_multi.split())
# ['1', 'one', '2', 'two', '3', 'three']
Da im September nur ein Newline-Zeichen angegeben werden kann, kann es bei gemischten Newline-Zeichen nicht geteilt werden. Es wird auch am Ende des Newline-Zeichens geteilt.
print(s_lines_multi.split('n'))
# ['1 one', '2 twor', '3 three', '']
splitlines() teilt ein anderes Newline-Zeichen, aber nicht ein anderes Leerzeichen.
print(s_lines_multi.splitlines())
# ['1 one', '2 two', '3 three']
If das erste Argument, keepends, auf True gesetzt IST, enthält das Ergebnis ein Zeilenumbruchzeichen am Ende der Zeile.
print(s_lines_multi.splitlines(True))
# ['1 onen', '2 tworn', '3 threen']
Weitere Operationen mit Zeilenumbrüchen finden Sie im following Artikel.
Nach Regex aufgeteilt:re.split()
split() und rsplit() werden nur geteilt, wenn sep vollständig erreicht.
Wenn SIE Eine Zeichenfolge aufteilen möchten, sterben Sie mit Einem regulären Ausdruck (Regex) statt mit Einer Perfekten Übereinstimmung, verwenden SIE split() des re-Moduls.
Geben Sie in re.split() im ersten Parameter das Regex-Muster und im zweiten Parameter die Zielzeichenfolge an.
Ein Beispiel für die Aufteilung nach fortlaufenden Nummern ist wie folgt.
import re
s_nums = 'one1two22three333four'
print(re.split('d+', s_nums))
# ['one', 'two', 'three', 'four']
Die maximale Anzahl der Splits kann im dritten Parameter maxsplit angegeben werden.
print(re.split('d+', s_nums, 2))
# ['one', 'two', 'three333four']
Geteilt durch mehrere verschiedene Trennzeichen
Die following zwei sind nützlich, um sich daran zu erinnern, selbst wenn Sie mit der Regex nicht vertraut sind.
Schließen Sie eine Zeichenfolge mit [] ein, um mit einem beliebigen einzelnen Zeichen darin übereinzustimmen. Sie können eine Zeichenfolge durch mehrere verschiedene Zeichen aufteilen.
s_marks = 'one-two+three#four'
print(re.split('[-+#]', s_marks))
# ['one', 'two', 'three', 'four']
Wenn Muster durch | getrennt sind, stimmt es mit jedem Muster überein. Natürlich ist es möglich, Sonderzeichen von Regex für jedes Muster zu verwenden, aber es ist in Ordnung, auch wenn ein normaler String so angegeben wird, wie er ist. Sie können durch mehrere Buchstaben aufteilen.
s_strs = 'oneXXXtwoYYYthreeZZZfour'
print(re.split('XXX|YYY|ZZZ', s_strs))
# ['one', 'two', 'three', 'four']
Verketten Sie eine Liste von Zeichenfolgen
In den vorangegangenen Beispielen können Sie die Zeichenfolge aufteilen und die Liste erhalten.
Wenn Sie eine Liste von Strings zu einem String verketten möchten, verwenden Sie die String-Methode join().
Rufen Sie join() von ’separator‘ aus auf und SIE übergeben eine Liste von Zeichenfolgen, die an das Argument verkettet werden sollen.
l = ['one', 'two', 'three']
print(','.join(l))
# one,two,three
print('n'.join(l))
# one
# two
# three
print(''.join(l))
# onetwothree
Im following Artikel FINDEN SIE SICHERHEITS-PCIONE ZUR STICKPLATTENVERKETTUNG.
Split basierend auf der Anzahl der Zeichen: Slice
Verwenden Sie Slice, um Buchstaben basierend auf der Anzahl der Zeichen aufzuteilen.
s = 'abcdefghij'
print(s[:5])
# abcde
print(s[5:])
# fghij
Es kann als Tupel bezogen bzw. einer Variablen zugewiesen werden.
s_tuple = s[:5], s[5:]
print(s_tuple)
# ('abcde', 'fghij')
print(type(s_tuple))
# <class 'tuple'>
s_first, s_last = s[:5], s[5:]
print(s_first)
# abcde
print(s_last)
# fghij
Aufgeteilt in drei:
s_first, s_second, s_last = s[:3], s[3:6], s[6:]
print(s_first)
# abc
print(s_second)
# def
print(s_last)
# ghij
Die Anzahl der Zeichen kann mit der eingebauten Funktion len() ermittelt werden. Es kann damit auch in zwei Hälften geteilt werden.
half = len(s) // 2
print(half)
# 5
s_first, s_last = s[:half], s[half:]
print(s_first)
# abcde
print(s_last)
# fghij
Wenn Sie Zeichenfolgen verketten möchten, verwenden Sie den Operator +.
print(s_first + s_last)
# abcdefghij