\

Pythonのリスト操作には様々な方法がありますが、その中でもappendextendのパフォーマンスについて詳しく見ていきましょう。

appendとextendの基本

まず、appendextendの基本的な違いを理解しましょう。appendはリストに要素を一つずつ追加します。一方、extendは別のリストの要素をまとめて追加します。

# appendの使用例
list = []
for i in range(N):
    list.append(i)

# extendの使用例
list = []
list.extend(range(N))

パフォーマンス比較

さて、これらの操作のパフォーマンスを比較してみましょう。以下のコードは、それぞれの操作をN回繰り返し、その実行時間を計測します。

import time

N = 10000000
Time = 10

def list_append():
    for _ in range(Time):
        array = []
        for _ in range(N):
            array.append(1)

def list_extend():
    for _ in range(Time):
        array = []
        array.extend([1 for _ in range(N)])

if __name__ == '__main__':
    for function in [list_append, list_extend]:
        start = time.time()
        function()
        print((time.time() - start) / Time)

このコードを実行すると、extendの方がappendよりも高速であることがわかります。これは、extendが一度に複数の要素を追加するため、内部でのメモリ確保や要素のコピーが少なくて済むからです。

まとめ

Pythonのリスト操作には様々な方法がありますが、その中でもappendextendは特によく使われます。しかし、これらの操作のパフォーマンスは大きく異なり、一般的にはextendの方が高速です。したがって、パフォーマンスが重要な場合には、可能な限りextendを使用することをお勧めします。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です