2016-05-14 28 views

Antwort

3

Die erste ist offensichtlich bessere Praxis - es drückt Ihre tatsächliche Absicht deutlicher aus.

Lasst uns herausfinden, was effizienter ist, mit ipython ‚s %timeit Funktion:

In [1]: %timeit a1 = 'a'*5 
10000000 loops, best of 3: 14.6 ns per loop 

In [2]: %timeit a1 = ''.join(['a']*5) 
1000000 loops, best of 3: 326 ns per loop 

In [3]: 326/14.6 
Out[3]: 22.328767123287673 

also um einen Faktor von mehr als 20 Mal, das erste schneller ist, auf meinem Rechner. Ihr Ergebnis kann natürlich variieren.

Ps. Von Crouse a1 = 'aaaaa' könnte die beste Wahl von allen sein.

+0

Re your p.s .: ja, wenn die Anzahl der 'a's bekannt ist, wenn Sie Ihr Programm schreiben ... – gboffi

2

ich für die erste in jedem Fall gehen werde:

Zen 3: Einfach ist besser als kompliziert.

+0

Absolut stimmen Sie mit der Nachricht dieser Antwort. Wenn der Codeabschnitt nicht entscheidend für die Leistung ist, sollten Sie sich an den einfachsten Ausdruck halten, auch wenn er etwas langsamer ist. In diesem Fall ist die zweite Methode jedoch unnötig komplex und langsamer. – Reti43