我想知道以下两种情况在空间复杂度方面有何不同。
案例1:A = [i ** 2 for i in A] 情况2:A[:] = [i ** 2 for i in A]
A = [i ** 2 for i in A]
A[:] = [i ** 2 for i in A]
我的理解是,在两种情况下均会构建一个新数组(O(n))。在情况1中,引用是指新数组。在情况2中,引用引用了它所引用的内容,但是其内容已更新。是真的吗?
似乎您是对的。与初始化新阵列相比,更新内存中的预分配插槽需要更长的时间。