2016-12-21 7 views
1

O(1)時間の最後のインデックスなど、任意のインデックスで要素を削除できるかどうかを知りたいと思います。O(1)時間でpythonリストの要素を削除する方法

+6

最後のインデックス?簡単です。任意のインデックス?いいえ。 – user2357112

+0

あなたのすべての回答はO(n) – iFlo

+0

です。私はそう簡単にはできないと思います。 https://wiki.python.org/moin/TimeComplexity、o(n) – ishaan

答えて

8

実際には、スワップする必要はありません。目的の削除位置に最後の要素をコピーするだけです。逆の割り当てを気にせずに、最後の(今は冗長な)要素をポップしてください。要素N

my_list[n] = my_list.pop() 

を除去するために1行でそれを行います。

+2

私は、最後の要素である場合、これがエラーを起こすことを確認しました。 'など。 my_list = [1,2,3]とmy_list [2] = my_list.pop()を実行した場合、 は、リストの長さを1つ減らすので、 "IndexError:リスト割り当てインデックスが範囲外です" を返します。 この場合、n == len(my_list)-1 のpop()だけを処理します。 –

関連する問題