リストを作成する操作として、以下の2つを比較します。1番目は空のリストを作ってから append していく方法、2番目はリスト内包表記、となります。
- list.append へのショートカットを利用
- リスト内包表記
ベンチマークのソースコードです。
from benchmarker import Benchmarker with Benchmarker(1000, cycle=3, extra=1) as bench: sample = range(10000) @bench("append") def _(bm): for _ in bm: l = list() append = l.append for i in sample: append(i) @bench("comprehensions") def _(bm): for _ in bm: l = [i for i in sample]計測結果です。
## benchmarker: release 4.0.1 (for python) ## python version: 3.4.0 ## python compiler: MSC v.1600 32 bit (Intel) ## python platform: Windows-8-6.2.9200 ... ## Ranking real comprehensions 2.5492 (100.0) ******************** append 3.2118 ( 79.4) ****************
計測結果より、リスト内包表記の方が高速であると言えます。
「list.append へのショートカットを利用」はこちらでは最速の手法でしたが、リスト内包表記はそれよりも高速でした。
さらに、リスト内包表記は記述が1行で済んでおり、高速さと簡潔さを兼ね備えた実装方法であると言えます。内包表記を使える場面では迷わず使っていきましょう。
0 件のコメント:
コメントを投稿