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

相关推荐
壹佰大多19 分钟前
【Redisson分布式锁源码分析-3】
数据结构·分布式·mysql·spring·spring cloud·wpf·lua
Geoking.1 小时前
PyTorch torch.unique() 基础与实战
人工智能·pytorch·python
Fr2ed0m1 小时前
卡尔曼滤波算法原理详解:核心公式、C 语言代码实现及电机控制 / 目标追踪应用
c语言·人工智能·算法
Sapphire~1 小时前
重学JS-012 --- JavaScript算法与数据结构(十二)正则表达式
javascript·数据结构·算法
俊俊谢1 小时前
【第一章】金融数据的获取——金融量化学习入门笔记
笔记·python·学习·金融·量化·akshare
Yupureki1 小时前
从零开始的C++学习生活 20:数据结构与STL复习课(4.4w字全解析)
c语言·数据结构·c++·学习·visual studio·1024程序员节
一念&1 小时前
每日一个C语言知识:C 错误处理
c语言·开发语言·算法
FMRbpm2 小时前
顺序表vector--------练习题3题解
数据结构·c++·新手入门
buyue__2 小时前
C++实现数据结构——线性表
数据结构·c++
闲人编程2 小时前
现代Python开发环境搭建(VSCode + Dev Containers)
开发语言·vscode·python·容器·dev·codecapsule