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

相关推荐
RSTJ_162516 分钟前
PYTHON+AI LLM DAY THREETY-SEVEN
开发语言·人工智能·python
郝学胜-神的一滴21 分钟前
深度学习优化核心:梯度下降与网络训练全解析
数据结构·人工智能·python·深度学习·算法·机器学习
Aision_29 分钟前
Agent 为什么需要 Checkpoint?
人工智能·python·gpt·langchain·prompt·aigc·agi
清水白石00834 分钟前
《Python性能深潜:从对象分配开销到“小对象风暴”的破解之道(含实战与最佳实践)》
开发语言·python
Je1lyfish1 小时前
CMU15-445 (2025 Fall/2026 Spring) Project#3 - QueryExecution
linux·c语言·开发语言·数据结构·数据库·c++·算法
许彰午1 小时前
03-二叉树——从递归遍历到非递归实现
java·算法
Brilliantwxx1 小时前
【C++】 vector(代码实现+坑点讲解)
开发语言·c++·笔记·算法
Land03292 小时前
RPA工具选型技术指南:架构差异与实测数据
python·自动化·rpa
kafei_*2 小时前
VScode 添加 UV虚拟环境方法
vscode·python·uv
洛_尘2 小时前
Python 5:使用库
java·前端·python