a1 = 'a'*5
a2 = ''.join(['a']*5)
上記の2つの変数があるとします。どちらがより効率的か、より良い習慣を使用するのか不思議です。Python文字の乗算またはリストの乗算
ありがとうございます!
a1 = 'a'*5
a2 = ''.join(['a']*5)
上記の2つの変数があるとします。どちらがより効率的か、より良い習慣を使用するのか不思議です。Python文字の乗算またはリストの乗算
ありがとうございます!
最初の方が明らかに優れています。実際の意図をより明確に表現しています。
はipython
の%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。クロウズa1 = 'aaaaa'
のすべての中で最良の選択かもしれません。
あなたのプログラムを書いているときに「a」の数が分かっていれば、あなたの答え:はい。 – gboffi
私はどのような場合でも最初の1のために行くよ:
禅3:シンプルは、複雑なよりも優れています。
この答えのメッセージに絶対に同意してください。コードセクションがパフォーマンスにとって重要でない限り、少し遅くても最も簡単な表現に固執してください。しかしながら、この場合、第2の方法は、不必要に複雑で遅い。 – Reti43
リストラッパーとメソッド呼び出しを追加しないもの。 – TigerhawkT3