Ich spiele mit Listenverständnissen herum und bin auf einer anderen Seite auf diesen kleinen Ausschnitt gestoßen:
return ''.join([`num` for num in xrange(loop_count)])
Ich habe ein paar Minuten damit verbracht, die Funktion zu replizieren (durch Eingabe), bevor ich merkte, dass das `num`
Bit sie kaputt machte.
Was bewirkt das Einfügen einer Anweisung in diese Zeichen? Soweit ich sehen kann, entspricht es str (num). Aber als ich es zeitlich festlegte:
return ''.join([str(num) for num in xrange(10000000)])
Es dauert 4,09 Sekunden, während:
return ''.join([`num` for num in xrange(10000000)])
dauert 2,43s.
Beide liefern identische Ergebnisse, aber eines ist viel langsamer. Was geht hier vor sich?
EDIT: Seltsamerweise ... repr()
liefert etwas langsamere Ergebnisse als `num`
. 2,99s vs 2,43s. Verwenden von Python 2.6 (habe 3.0 noch nicht ausprobiert).