a1 = 'a'*5
a2 = ''.join(['a']*5)
Скажите, если бы у меня были две переменные выше. Просто интересно, какой из них эффективнее или лучше использовать.Символ Python умножить или перечислить умножить
Спасибо!
a1 = 'a'*5
a2 = ''.join(['a']*5)
Скажите, если бы у меня были две переменные выше. Просто интересно, какой из них эффективнее или лучше использовать.Символ Python умножить или перечислить умножить
Спасибо!
Первым, очевидно, является более совершенная практика - она более четко выражает ваше фактическое намерение.
Давайте выясним, что более эффективно, используя ipython
«s %timeit
функции:
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
Таким образом, на коэффициент более чем в 20 раз, во-первых, быстрее, на моей машине. Разумеется, ваш результат может отличаться.
Ps. Crouse a1 = 'aaaaa'
может быть лучшим выбором.
Re your p.s .: yes, если число 'a' известно, когда вы пишете свою программу ... – gboffi
Я пойду первым в любом случае:
Zen 3: Простой лучше, чем сложнее.
Абсолютно согласен с сообщением этого ответа. Если раздел кода не критичен для производительности, придерживайтесь простейшего выражения, даже если оно может быть немного медленнее. Однако в этом случае второй метод является как ненужным, так и более медленным. – Reti43
Единица без дополнительного списка обертки и метода вызова. – TigerhawkT3