我想知道python在插入任意索引期间进行了多少分配,以及在删除第一个元素del(list [0])时进行了多少分配。我有点困惑,因为这两个操作的时间复杂度是O(n),n是列表中元素的数量,但在考虑它时我得到它是O(n-1)。 / p>
"删除列表中的元素需要移动以下所有元素,插入也是如此,因此这两个操作是O(i)其中i是项目后面的项目数你删除/插入"。
这是否意味着如果我有一个包含99999个元素的列表并且我在索引20000处插入一个元素(spot 20001),python会移动79999个后续元素,即79999个赋值?或实际插入是否也需要分配,即总共80000个分配?
同样的问题是删除。如果我有一个包含100000个元素的列表并且我删除了第一个,那么python是否需要99999个轮班或100000个分配?