Python中'A = [...]'和'A [:] = [...]'的空间复杂度之间有什么区别吗?

问题描述

我想知道以下两种情况在空间复杂度方面有何不同。

案例1:A = [i ** 2 for i in A]
情况2:A[:] = [i ** 2 for i in A]

我的理解是,在两种情况下均会构建一个新数组(O(n))。在情况1中,引用是指新数组。在情况2中,引用引用了它所引用的内容,但是其内容已更新。是真的吗?

解决方法

似乎您是对的。与初始化新阵列相比,更新内存中的预分配插槽需要更长的时间。

Timed entries