nums1 = nums
和 nums1 = nums[:]
在Python中有着不同的行为:
-
nums1 = nums
:这种赋值方式实际上是将nums1
和nums
指向了同一个列表对象。换句话说,它们是同一个列表的两个引用。因此,对nums1
的修改也会影响到nums
,反之亦然。如果你修改了nums1
中的元素,nums
中对应位置的元素也会被修改,因为它们指向同一个内存地址。 -
nums1 = nums[:]
:这种赋值方式是创建了nums
的一个浅拷贝,并将其赋值给nums1
。这意味着nums1
是一个全新的列表对象,它包含了nums
中所有元素的副本。因此,对nums1
的修改不会影响到nums
,它们是两个独立的列表对象。
总的来说,nums1 = nums
是一种引用赋值,而nums1 = nums[:]
是一种值复制。通常情况下,如果希望对列表进行修改而不影响原始列表,应该使用后者来创建一个副本。