リストを作成する操作として、以下の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 件のコメント:
コメントを投稿