Im Folgenden wird beschrieben, wie man die Zeichenkette str in Python verkettet und verbindet.
- Verkettung und Zusammenführung mehrerer Zeichenfolgen:
+
,+=
Betreiber - Konkatenieren und Kombinieren von Zahlen und Zeichenketten:
+
,+=
Betreiber,str()
,format()
,f-Zeichenkette - Verketten und Kombinieren von Listen (Arrays) von Zeichenfolgen zu einer einzigen Zeichenfolge:
join()
- Verketten und Kombinieren von Listen (Arrays) von Zahlen zu einer einzigen Zeichenfolge:
join()
,str()
- Verkettung und Zusammenführung mehrerer Zeichenfolgen: +, +=Betreiber
- Verkettung von Zahlen und Zeichenfolgen\Verkettung: +,+=Betreiber,str(),format(),f-Zeichenkette
- Verkettung und Verknüpfung von Listen (Arrays) von Zeichenketten: join()
- Verketten und Kombinieren von Listen (Arrays) von Zahlen als Zeichenketten: join(),str()
Verkettung und Zusammenführung mehrerer Zeichenfolgen: +, +=Betreiber
Verbindung: +Betreiber
Mit dem Operator ++ können die folgenden String-Literale und String-Variablen miteinander verknüpft werden
- '…'
- “…”
s = 'aaa' + 'bbb' + 'ccc'
print(s)
# aaabbbccc
s1 = 'aaa'
s2 = 'bbb'
s3 = 'ccc'
s = s1 + s2 + s3
print(s)
# aaabbbccc
s = s1 + s2 + s3 + 'ddd'
print(s)
# aaabbbcccddd
Verbindung: +=Betreiber
Der Operator +=, ein kumulativer Zuweisungsoperator, kann ebenfalls verwendet werden. Die String-Variable auf der linken Seite wird mit der String-Variable auf der rechten Seite konkateniert, zugewiesen und aktualisiert.
s1 += s2
print(s1)
# aaabbb
Wenn Sie eine Zeichenkette an das Ende einer Zeichenkettenvariablen anfügen möchten, verarbeiten Sie einfach die Zeichenkettenvariable und ein beliebiges Zeichenkettenliteral (oder eine andere Zeichenkettenvariable) mit dem Operator +=.
s = 'aaa'
s += 'xxx'
print(s)
# aaaxxx
Konsekutive Verkettung von String-Literalen
Wenn Sie einfach String-Literale nebeneinander schreiben, werden die String-Literale verkettet.
s = 'aaa''bbb''ccc'
print(s)
# aaabbbccc
Ein Leerzeichen zwischen zwei Zeilen oder ein Backslash-Zeilenumbruch (der als Fortsetzung gilt) ist zulässig.
s = 'aaa' 'bbb' 'ccc'
print(s)
# aaabbbccc
s = 'aaa'\
'bbb'\
'ccc'
print(s)
# aaabbbccc
Es gibt eine Technik, mit der man lange Zeichenfolgen in mehrere Zeilen des Codes schreiben kann.
- Verwandte Artikel:Lange Zeichenketten auf mehreren Zeilen in Python schreiben
Diese Schreibmethode ist für String-Variablen nicht möglich.
# s = s1 s2 s3
# SyntaxError: invalid syntax
Verkettung von Zahlen und Zeichenfolgen\Verkettung: +,+=Betreiber,str(),format(),f-Zeichenkette
Eine + Operation eines anderen Typs führt zu einem Fehler.
s1 = 'aaa'
s2 = 'bbb'
i = 100
f = 0.25
# s = s1 + i
# TypeError: must be str, not int
Wenn Sie einen numerischen Wert (z. B. vom Typ int oder float) mit einer Zeichenkette verknüpfen wollen, konvertieren Sie den numerischen Wert mit str() in einen Zeichenkettentyp und verknüpfen Sie ihn dann mit dem Operator + (oder +=).
s = s1 + '_' + str(i) + '_' + s2 + '_' + str(f)
print(s)
# aaa_100_bbb_0.25
Wenn Sie das Format einer Zahl umwandeln möchten, z. B. Nullen oder Dezimalstellen, verwenden Sie die Funktion format() oder die Stringmethode format().
s = s1 + '_' + format(i, '05') + '_' + s2 + '_' + format(f, '.5f')
print(s)
# aaa_00100_bbb_0.25000
s = '{}_{:05}_{}_{:.5f}'.format(s1, i, s2, f)
print(s)
# aaa_00100_bbb_0.25000
Natürlich ist es auch möglich, den Wert einer Variablen ohne Formatierung direkt in eine Zeichenkette einzubetten. Dies ist einfacher zu schreiben als die Verwendung des +-Operators.
s = '{}_{}_{}_{}'.format(s1, i, s2, f)
print(s)
# aaa_100_bbb_0.25
Im folgenden Artikel erfahren Sie, wie Sie das Format festlegen.
- Verwandte Artikel:Formatkonvertierung in Python, Format (0-Füllung, Exponentialschreibweise, Hexadezimal, usw.)
Seit Python 3.6 wurde auch ein Mechanismus namens f-strings (f-string) eingeführt, der noch einfacher zu schreiben ist als format().
s = f'{s1}_{i:05}_{s2}_{f:.5f}'
print(s)
# aaa_00100_bbb_0.25000
s = f'{s1}_{i}_{s2}_{f}'
print(s)
# aaa_100_bbb_0.25
Verkettung und Verknüpfung von Listen (Arrays) von Zeichenketten: join()
Die String-Methode join() kann verwendet werden, um eine Liste von Strings zu einem einzigen String zu verketten.
Im Folgenden wird beschrieben, wie man ihn schreibt.
'String to be inserted between'.join([List of strings to be concatenated])
Rufen Sie die Methode join() mit 'string to insert between' auf und übergeben Sie [list of strings to concatenate] als Argument.
Wenn eine leere Zeichenkette verwendet wird, wird [Liste der zu verkettenden Zeichenketten] einfach verkettet, wenn ein Komma verwendet wird, werden die Zeichenketten durch Kommas getrennt, und wenn ein Zeilenumbruchzeichen verwendet wird, wird jedes Zeichenkettenelement mit einem Zeilenumbruch versehen.
l = ['aaa', 'bbb', 'ccc']
s = ''.join(l)
print(s)
# aaabbbccc
s = ','.join(l)
print(s)
# aaa,bbb,ccc
s = '-'.join(l)
print(s)
# aaa-bbb-ccc
s = '\n'.join(l)
print(s)
# aaa
# bbb
# ccc
Obwohl hier nur ein Beispiel für eine Liste gegeben wird, können auch andere iterierbare Objekte wie Tupel als Argumente für join() angegeben werden.
Im Gegensatz zu join() wird split() verwendet, um eine durch ein bestimmtes Trennzeichen abgegrenzte Zeichenkette zu zerlegen und als Liste zu erhalten.
Verketten und Kombinieren von Listen (Arrays) von Zahlen als Zeichenketten: join(),str()
Ein Fehler tritt auf, wenn das Argument für join() eine Liste ist, deren Elemente keine Strings sind.
l = [0, 1, 2]
# s = '-'.join(l)
# TypeError: sequence item 0: expected str instance, int found
Um eine Liste von Zahlen zu einer einzigen Zeichenkette zu verketten, wenden Sie die Funktion str() auf jedes Element der Liste an, um die Zahlen in eine Zeichenkette umzuwandeln, und fügen Sie sie dann mit join() zusammen.
s = '-'.join([str(n) for n in l])
print(s)
# 0-1-2
Er kann auch als Generatorausdruck geschrieben werden, der eine Generatorversion von Listenauffassungen ist. Generatorausdrücke werden in Klammern gesetzt, aber die Klammern können weggelassen werden, wenn der Generatorausdruck das einzige Argument einer Funktion oder Methode ist.
s = '-'.join((str(n) for n in l))
print(s)
# 0-1-2
s = '-'.join(str(n) for n in l)
print(s)
# 0-1-2
Generatorausdrücke haben im Allgemeinen den Vorteil, dass sie weniger Speicherplatz benötigen als Listenkomplexe, aber es gibt keinen besonderen Vorteil bei der Verwendung von Generatorausdrücken, da join() in seiner internen Verarbeitung Generatoren in Listen umwandelt. In der Tat ist es etwas schneller, von Anfang an Listenauffassungen zu verwenden.
Weitere Informationen zu List Comprehensions und Generatorausdrücken finden Sie im folgenden Artikel.
- Verwandte Artikel:Wie man Python-Listenauflösungen verwendet