Python中列表复制A=B和A=B[:]的区别

在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列表。

相关推荐
梦幻精灵_cq3 分钟前
sumdir——一个伪python.built-in的“术法”打造
python
Sirens.19 分钟前
Java并发锁详解:六类锁策略与 synchronized 底层原理
java·前端·算法
和裕38 分钟前
全纸结构重型纸箱能否满足 1 吨以上设备出口熏蒸豁免要求?通关合规性全解析
大数据·运维·网络·人工智能·算法
tangguofeng1 小时前
不带头结点的链队操作集(不含InitFlag)(C语言版)
算法
weixin_440730501 小时前
函数return、参数、参数组、递归函数、高阶函数等小结
开发语言·python
天赐范式2 小时前
天赐范式第181天:让视图开始切换——PBFT视图切换与从safety到liveness的跨越
python·pbft·数字生命·天赐范式·动态运行时·拜占庭容错
sugarzhangnotes2 小时前
【无标题】
开发语言·人工智能·python
weixin_447195292 小时前
【无标题】
pytorch·python
迅猛龙办公室2 小时前
Python实现简单的人名对话
python
苏打豆2 小时前
CRISP源码阅读——基于ROS2力矩反馈控制器与速度加速度零空间
c++·线性代数·算法·矩阵·机器人