Vergleich der String-Verkettung: = vs. ''.join()
Als ich dieses Thema in einer früheren Antwort behandelte, wurde ich neugierig über die Leistungsunterschiede zwischen dem =-Operator und der ''.join()-Methode für die String-Verkettung. Deshalb habe ich mich entschieden, einen direkten Vergleich durchzuführen.
Laut den Ergebnissen der effizienten String-Verkettung ist ''.join() dem =-Operator hinsichtlich der Geschwindigkeit weit überlegen. Diese Diskrepanz kann auf die Unveränderlichkeit von Strings in Python zurückgeführt werden. Da Zeichenfolgen nicht vor Ort geändert werden können, erfordert jeder Versuch, sie zu verketten, die Erstellung einer neuen Zeichenfolge, was einen erheblichen Rechenaufwand mit sich bringt.
Die folgenden Codeausschnitte veranschaulichen den Leistungsunterschied:
<code class="python">def method1(): out_str = '' for num in xrange(loop_count): out_str += 'num' return out_str def method4(): str_list = [] for num in xrange(loop_count): str_list.append('num') return ''.join(str_list)</code>
Obwohl diese Methoden nicht völlig gleichwertig sind (Methode 4 wird vor dem Zusammenfügen der Elemente an eine Liste angehängt), bieten sie eine einigermaßen genaue Darstellung des Leistungsunterschieds.
Bei der Visualisierung der Ergebnisse wird deutlich, dass es sich um eine Zeichenfolgenzusammenführung handelt ist deutlich schneller als die Verkettung:
[Bild von test_20k.gif]
Das obige ist der detaillierte Inhalt vonPython-String-Verkettung: Wann ist \'\'.join() schneller als =?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!