Skip to content

Konkatenieren von Strings in Python (+ Operator, join, etc.)

Python

Dieser Artikel genau, wie man Strings in Python verkettet.

  • Mehrere Strings verketten:+, += operator
  • Strings und Zahlen verketten:+, += operator, str(), format(), f-string
  • Verketten Sie eine Liste von Strings zu einem String:join()
  • Verketten Sie eine Liste von Zahlen zu einer Zeichenfolge:join(), str()

Mehrere Strings verketten:+, += operator

+ Betreiber

Sie können String-Literale (‚…‘ oder „…“) und String-Variablen mit dem +-Operator verketten.

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

+= Operator

Sie können mit dem In-Place-Operator += einen weiteren String an einen String anhängen. Die rechte Zeichenfolge wird nach der linken Zeichenfolgenvariablen verkettet.

s1 += s2
print(s1)
# aaabbb

Wenn SIE am Ende einer Zeichenfolgenvariablen eine Zeichenfolge hinzufügen möchten, verwenden SIE den Operator +=.

s = 'aaa'

s += 'xxx'
print(s)
# aaaxxx

Verketten Sie, indem Sie Buchstabenliterale nacheinander schreiben

Wenn Sie Zeichenfolgenliterale nacheinander schreiben, werden sie verkettet.

s = 'aaa''bbb''ccc'
print(s)
# aaabbbccc

Auch wenn mehrere Leerzeichen oder Zeilenumbrüche mit umgekehrtem Schrägstrich (als Fortsetzungszeilen betrachtet) zwischen den Zeichenfolgen vorhanden sind, werden sie verkettet.

s = 'aaa'  'bbb'    'ccc'
print(s)
# aaabbbccc

s = 'aaa'
    'bbb'
    'ccc'
print(s)
# aaabbbccc

Damit can SIE lange Strings über mehrere Zeilen im Code schreiben.

Für String-Variablen ist dies nicht möglich.

# s = s1 s2 s3
# SyntaxError: invalid syntax

Strings und Zahlen verketten:+, += operator, str(), format(), f-string

Die + Operation zwischen verschiedenen Typen löst einen Fehler aus.

s1 = 'aaa'
s2 = 'bbb'

i = 100
f = 0.25

# s = s1 + i
# TypeError: must be str, not int

Wenn Sie eine Zeichenfolge und eine Zahl verketten möchten, z. B. eine Ganzzahl int oder eine Fließkommazahl, konvertieren Sie die Zahl mit str() in eine Zeichenfolge und verwenden Sie dann den Operator + oder +=.

s = s1 + '_' + str(i) + '_' + s2 + '_' + str(f)
print(s)
# aaa_100_bbb_0.25

Verwenden Sie die format()-Funktion oder die String-Methode format(), wenn Sie das Zahlenformat konvertieren möchten, z. B. Nullauffüllung oder Dezimalstellen.

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 Angabe des Formats direkt in einen String einzubetten, was einfacher ist als die Verwendung des +-Operators.

s = '{}_{}_{}_{}'.format(s1, i, s2, f)
print(s)
# aaa_100_bbb_0.25

In Python 3.6 und höher können Sie auch ein formatiertes String-Literal (f-String) verwenden. Es ist sogar noch einfacher 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

Verketten Sie eine Liste von Strings zu einem String:join()

Sie können eine Liste von Strings mit der String-Methode join() zu einem einzigen String verketten.

Rufen Sie die Methode join() aus ‚Einzufügende Zeichenfolge‘ auf und übergeben Sie [List of strings].

'String to insert'.join([List of strings])

If SIE Eine leere Zeichenfolge “ verwenden, WIRD [List of strings] einfach verkettet, Und Wenn SIE Ein Komma verwenden, WIRD Eine Durch Kommas getrennte Zeichenfolge Erstellt. If ein Newline-Zeichen n used WIRD, WIRD für jeden String ein Newline eingefügt.

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

Beachten Sie, dass andere iterierbare Objekte wie Tupel als Argumente von join() angegeben werden können.

Verwenden Sie split(), um eine durch ein bestimmtes Trennzeichen getrennte Zeichenfolge aufzuteilen und als Liste zu erhalten. Nichts finden Sie im folgenden Artikel.

Verketten Sie eine Liste von Zahlen zu einer Zeichenfolge:join(), str()

Wenn SIE Eine Nicht-String-Liste auf join() setzen, WIRD Ein Fehler ausgelöst.

l = [0, 1, 2]

# s="-".join(l)
# TypeError: sequence item 0: expected str instance, int found

Wenn Sie eine Liste von Zahlen (int oder float) zu einem einzelnen String verketten möchten, wenden Sie die str()-Funktion auf jedes Element in der Listenbeschreibung an, um Zahlen in Strings umzuwandeln, und zu verketten Sie sie dann mit join().

s = '-'.join([str(n) for n in l])
print(s)
# 0-1-2

Es kann als Generatorausdruck geschrieben werden, eine Generatorversion von Listenverständnissen. Generatorausdrücke sind in Klammern () eingeschlossen, aber Sie können () weglassen, 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

Im Allgemeinen haben Generatorausdrücke den Vorteil eines reduzierten Speicherverbrauchs im Vergleich zu List Comprehensions. Da jedoch join() einen Generator intern in eine Liste umwandelt, bringt die Verwendung von Generatorausdrücken keinen Vorteil.

Im following Artikel FINDEN SIE Laptops zu Listenverständnissen und Generatorausdrücken.