nums[:] = result
并不会改变 nums 的身份(即它在内存中的地址),但它会改变 nums 所包含的元素。这与 nums = result 不同,后者会创建一个新的列表对象并将其赋值给 nums,原来的 nums列表(如果之前有其他引用指向它)将不再被引用,可能会被 Python 的垃圾回收机制回收。
nums1 = [1, 2, 3, 4, 5]
nums2 = nums1[:] # nums2 现在是 [1, 2, 3, 4, 5] 的一个副本
nums2.append(6) # 修改 nums2
print(nums1) # 输出 [1, 2, 3, 4, 5],nums1 没有被改变
print(nums2) # 输出 [1, 2, 3, 4, 5, 6]