9

重複の可能性:
len()関数のコスト

len()リスト内のオブジェクトを反復処理してから、それらのカウントを返しますか?したがって、それにO(n)を与えます。

または....

Pythonリストは、追加および削除されたオブジェクトのカウントを保持し、len()呼び出されたときにこの「カウント」を返すだけですか?したがって、 O(1)を与えます。

4

2 に答える 2

14

Pythonリストはそれ自体の長さを知っています。O(1)時間lenかかります。リストは実際には配列であり、線形時間がかかるLispのようなリンクリストではありません。length

于 2012-09-09T20:00:28.100 に答える
11

を定義するすべての組み込みオブジェクトの場合、__len__()O(1)になります。独自のオブジェクトを実装__len__()する場合、それは何でもかまいません。

于 2012-09-09T20:00:55.667 に答える