Verkettung und Verknüpfung von Zeichenketten in Python: +-Operatoren, Verknüpfungsfunktionen, usw.

Geschäft

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

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.

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.

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.