2016-06-12 2 views
-1

list.pop(0)を実行して、Pythonでリストの先頭から要素を削除するとき。これにより、新しい配列が作成されるか、ポインタが新しい最初の要素に移動されます。そうでない理由は何ですか?ポップ(0)すべての要素をコピーする

+2

残りの要素はすべてシフトされます。正面から飛び出している場合は、 'deque'を使います。 –

+0

http://stackoverflow.com/questions/195625/what-is-the-time-complexity-of-popping-elements-from-list-in-python – user2864740

答えて

4

新しい配列を作成するか、ポインタを新しい最初の要素に移動するだけですか?

どちらもありません。ギャップを埋めるために残りのすべてのリスト要素をシフトします。最初の要素へのポインタを変更することで実装できますが、他の操作に時間と空間のオーバーヘッドが追加されます。シーケンスの両端で効率的な挿入と削除が必要な場合は、collections.dequeがそのジョブを実行します。

関連する問題