arr.append(curr)
将当前的元素 curr
作为引用添加到列表 arr
中。
arr.append(curr[:])
将当前的元素 curr
的副本添加到列表 arr
中。
区别在于,arr.append(curr)
添加的是 curr
的引用,即 arr
中的元素和 curr
指向同一个内存地址,如果 curr
后续发生变化,那么 arr
中的元素也会随之改变。而 arr.append(curr[:])
添加的是 curr
的副本,即 arr
中的元素和 curr
不再指向同一个内存地址,因此 curr
的变化不会影响 arr
中的元素。
下面是一个示例代码:
arr = []
curr = [1, 2, 3]
# 添加 curr 的引用
arr.append(curr)
print(arr) # 输出 [[1, 2, 3]]
# 修改 curr
curr.append(4)
print(arr) # 输出 [[1, 2, 3, 4]]
arr = []
curr = [1, 2, 3]
# 添加 curr 的副本
arr.append(curr[:])
print(arr) # 输出 [[1, 2, 3]]
# 修改 curr
curr.append(4)
print(arr) # 输出 [[1, 2, 3]]
从上述代码中可以看出,当使用 arr.append(curr)
时,arr
中的元素发生了改变,而当使用 arr.append(curr[:])
时,arr
中的元素保持不变。