在Python中,A = B 和 A = B[:] 用于复制列表时,有细微但重要的区别。它们的主要区别在于是否创建了一个新的列表对象。
A = B
这种赋值方式并没有创建nums的一个新副本,而是将nums的引用赋给了temp。因此,temp和nums指向同一个列表对象。对temp的任何修改都会反映到nums上,反之亦然。
python
num = [1, 2]
temp = nums
temp.append(3)
print(num) # 输出: [1, 2, 3]
print(temp) # 输出: [1, 2, 3]
在上面的例子中,由于temp和nums指向同一个列表,所以对temp的修改(如添加元素3)也会影响到nums。
A = B[:]
这种赋值方式使用了切片操作[:]来创建一个nums的浅拷贝。这意味着temp和nums是两个不同的列表对象,但它们包含相同的元素。因此,对temp的修改不会影响到nums,反之亦然。
python
python
num = [1, 2]
temp = nums[:]
temp.append(3)
print(num) # 输出: [1, 2]
print(temp) # 输出: [1, 2, 3]
在这个例子中,temp是nums的一个新副本。因此对temp的修改(如添加元素3)不会影响到原始的nums列表。