nums[:] 指向数组中的元素
nums 指向数组本身
例子:
- 代码1:
num1 = [1,2,3,4,5,6]
num2 = num1
num1 = num1[:5]
print('num1',num1)
print('num2',num2)
代码1运行的结果如下:
num1 [1, 2, 3, 4, 5]
num2 [1, 2, 3, 4, 5, 6]
- 代码2:
num1 = [1,2,3,4,5,6]
num2 = num1
num1[:] = num1[:5]
print('num1',num1)
print('num2',num2)
代码2运行的结果如下:
num1 [1, 2, 3, 4, 5]
num2 [1, 2, 3, 4, 5]
num2 在实例化时默认引用了和 num1 相同的元素,因此修改 num1 中的元素也会改变 num2 ;
但如果先对 num1 进行操作,num2 就会与 num1 独立开来,例子如下:
- 代码3:
num1 = [1,2,3,4,5,6]
num2 = num1
num1[:] = num1[:5]
num1 = num1[:4]
num1[:] = num1[:3]
print('num1',num1)
print('num2',num2)
代码3的运行结果如下:
num1 [1, 2, 3]
num2 [1, 2, 3, 4, 5]
在刷题时遇到了此类问题,记录下来,供大家参考