-1
list.pop(0)
を実行して、Pythonでリストの先頭から要素を削除するとき。これにより、新しい配列が作成されるか、ポインタが新しい最初の要素に移動されます。そうでない理由は何ですか?ポップ(0)すべての要素をコピーする
list.pop(0)
を実行して、Pythonでリストの先頭から要素を削除するとき。これにより、新しい配列が作成されるか、ポインタが新しい最初の要素に移動されます。そうでない理由は何ですか?ポップ(0)すべての要素をコピーする
新しい配列を作成するか、ポインタを新しい最初の要素に移動するだけですか?
どちらもありません。ギャップを埋めるために残りのすべてのリスト要素をシフトします。最初の要素へのポインタを変更することで実装できますが、他の操作に時間と空間のオーバーヘッドが追加されます。シーケンスの両端で効率的な挿入と削除が必要な場合は、collections.deque
がそのジョブを実行します。
残りの要素はすべてシフトされます。正面から飛び出している場合は、 'deque'を使います。 –
http://stackoverflow.com/questions/195625/what-is-the-time-complexity-of-popping-elements-from-list-in-python – user2864740