Python 3において、なぜ[]がlist()よりも速いのか?

PYTHON3 チュートリアル

Pythonのリストとlist()の違い

Python 3において、[]とlist()の速度の違いは、主にリストの作成方法によるものです。[]はリストのリテラル表現であり、list()は組み込み関数であり、それぞれ異なるメカニズムでリストを生成します。

リストの作成方法の比較

まず、[]を使用してリストを作成する方法を見てみましょう。

import time

start_time = time.time()
my_list = [1, 2, 3, 4, 5]
end_time = time.time()

print(my_list)
print("Time taken using []: ", end_time - start_time)

次に、list()を使用してリストを作成する方法を見てみましょう。

import time

start_time = time.time()
my_list = list([1, 2, 3, 4, 5])
end_time = time.time()

print(my_list)
print("Time taken using list(): ", end_time - start_time)

実行結果を見ると、[]を使用した場合の方がlist()を使用した場合よりも速いことがわかります。

結果と考察

この速度の違いは、[]がリテラル表現であるため、Pythonのパーサーが実行時にリストを直接生成するのに対し、list()は関数呼び出しやオブジェクトの生成などの追加のオーバーヘッドが発生するためです。

したがって、[]を使用することで、より効率的にリストを作成することができます。

Python 3において、[]がlist()よりも速い理由は、[]がリストを作成する際に、C言語の内部関数を呼び出すだけであるためです。一方、list()はPythonの組み込み関数であり、リストを作成するためにPythonの処理系によって解釈されるため、処理に時間がかかります。そのため、[]を使用することで、リストの作成が効率的に行われ、処理速度が向上します。

購読
通知
0 Comments
Inline Feedbacks
View all comments