2
0

Python リスト内包表記とappend()の比較について

Last updated at Posted at 2024-07-28

はじめに

 リスト内包表記は簡潔に記載できるが、どちらを使った方が良いのか。速度の面で比較しました。
 プログラムは、オイラリー・ジャパンの「入門Python3」を参考にしています。

timeitを使用した時間の比較

python
from timeit import timeit

def make_list_1():
    result = []
    for value in range(1000):
        result.append(value)
    return result
    
def make_list_2():
    result = [value for value in range(1000)]
    return result
    
print('make_list_1 の所要時間 ', timeit(make_list_1, number = 1000),'')
print('make_list_2 の所要時間 ', timeit(make_list_2, number = 1000),'')

# make_list_1 の所要時間  0.05835742875933647 秒
# make_list_2 の所要時間  0.03010526718571782 秒

timeitとは

 与えられた文、setup コードおよび timer 関数で Timer インスタンスを作成し、その timeit() メソッドを number 回実行します。

 詳しい説明は、こちらのサイトが分かりやすいです。

結びに

 「入門Python3」では、appendのほうがリスト内包表記の2倍以上時間がかかっているように記載されていますが、今回はそこまで差が出ませんでした。
 実際の環境で確認することも大事ですね。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0