Python-String-Anhängen
Python-String-Objekte sind unveränderlich. Jedes Mal, wenn wir den + Operator verwenden, um zwei Strings zu verketten, wird ein neuer String erstellt. Wenn wir viele Strings anhängen müssen, wird die Verwendung des + Operators unnötig viele temporäre Strings erstellen, bevor wir das endgültige Ergebnis haben.
Python-String-Anhängen
Lass uns eine Funktion betrachten, um einen String 'n' Mal zu verketten.
def str_append(s, n):
output = ''
i = 0
while i < n:
output += s
i = i + 1
return output
Beachten Sie, dass ich diese Funktion definiere, um die Verwendung des + Operators zu demonstrieren. Später werde ich das timeit-Modul verwenden, um die Leistung zu testen. Wenn Sie einfach einen String 'n' Mal verketten möchten, können Sie dies einfach tun, indem Sie s='Hi' * 10 verwenden.
Eine andere Möglichkeit, eine String-Anfügeoperation durchzuführen, besteht darin, eine Liste zu erstellen und Strings zur Liste hinzuzufügen. Dann verwenden Sie die String join()-Funktion, um sie zusammenzuführen und den Ergebnisstring zu erhalten.
def str_append_list_join(s, n):
l1 = []
i = 0
while i < n:
l1.append(s)
i += 1
return ''.join(l1)
Lass uns diese Methoden testen, um sicherzustellen, dass sie wie erwartet funktionieren.
if __name__ == "__main__":
print('Append using + operator:', str_append('Hi', 10))
print('Append using list and join():', str_append_list_join('Hi', 10))
# use below for this case, above methods are created so that we can
# check performance using timeit module
print('Append using * operator:', 'Hi' * 10)
Ausgabe :
Append using + operator: HiHiHiHiHiHiHiHiHiHi
Append using list and join(): HiHiHiHiHiHiHiHiHiHi
Append using * operator: HiHiHiHiHiHiHiHiHiHi
Die beste Methode zum Verketten von Zeichenfolgen in Python
Ich habe beide Methoden in der Datei string_append.py definiert. Lassen Sie uns das Modul timeit verwenden, um ihre Leistung zu überprüfen.
python3.7 -m timeit --number 1000 --unit usec 'import string_append' 'string_append.str_append("Hello", 1000)'
1000 loops, best of 5: 174 usec per loop
python3.7 -m timeit --number 1000 --unit usec 'import string_append' 'string_append.str_append_list_join("Hello", 1000)'
1000 loops, best of 5: 140 usec per loop
python3.7 -m timeit --number 1000 --unit usec 'import string_append' 'string_append.str_append("Hi", 1000)'
1000 loops, best of 5: 165 usec per loop
python3.7 -m timeit --number 1000 --unit usec 'import string_append' 'string_append.str_append_list_join("Hi", 1000)'
1000 loops, best of 5: 139 usec per loop
Zusammenfassung
Wenn es nur wenige Strings gibt, können Sie jede Methode verwenden, um sie anzuhängen. Aus Sicht der Lesbarkeit scheint die Verwendung des + Operators bei wenigen Strings besser zu sein. Wenn Sie jedoch viele Strings anhängen müssen, sollten Sie die Liste und die join()-Funktion verwenden.
Sie können das vollständige Python-Skript und weitere Python-Beispiele aus unserem GitHub-Repository abrufen.

