
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.