Wie kann ich eine Zeichenkette effizient an eine andere anhängen? Gibt es schnellere Alternativen zu:
var1 = "foo"
var2 = "bar"
var3 = var1 + var2
Wie kann ich eine Zeichenkette effizient an eine andere anhängen? Gibt es schnellere Alternativen zu:
var1 = "foo"
var2 = "bar"
var3 = var1 + var2
Wenn Sie viele Anhängeoperationen durchführen müssen, um eine große Zeichenkette zu erstellen, können Sie StringIO oder cStringIO. Die Schnittstelle ist wie eine Datei, d.h.: Sie write
um Text an den Text anzuhängen.
Wenn Sie nur zwei Strings aneinanderhängen, verwenden Sie einfach +
.
Im Grunde gibt es keinen Unterschied. Der einzige konstante Trend ist, dass Python mit jeder Version langsamer zu werden scheint... :(
%%timeit
x = []
for i in range(100000000): # xrange on Python 2.7
x.append('a')
x = ''.join(x)
Python 2.7
1 Runde, beste von 3: 7.34 s pro Schleife
Python 3.4
1 Runde, beste von 3: 7.99 s pro Schleife
Python 3.5
1 Runde, beste von 3: 8.48 s pro Schleife
Python 3.6
1 Runde, beste von 3: 9.93 s pro Schleife
%%timeit
x = ''
for i in range(100000000): # xrange on Python 2.7
x += 'a'
Python 2.7 :
1 Runde, beste von 3: 7.41 s pro Schleife
Python 3.4
1 Runde, beste von 3: 9.08 s pro Schleife
Python 3.5
1 Runde, beste von 3: 8.82 s pro Schleife
Python 3.6
1 Runde, beste von 3: 9.24 s pro Schleife
Code ist schön, aber eine begleitende Erklärung wäre hilfreich. Warum sollte man diese Methode verwenden und nicht die anderen Antworten auf dieser Seite?
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
17 Stimmen
TL;DR: Wenn Sie nur nach einer einfachen Möglichkeit suchen, Zeichenketten anzuhängen, und Ihnen die Effizienz egal ist:
"foo" + "bar" + str(3)