精选大厂常考python面试题

本文详细介绍了Python中的列表、元组和数组的区别,以及append和extend的方法差异。同时,讨论了Python中==和is的操作区别,并深入解析了深拷贝和浅拷贝的概念,特别是对于可变对象和不可变对象的不同处理。此外,还提到了元组的特殊情况,即当元组中所有元素及子孙元素不包含可变对象时,元组被视为不可变对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题1、Python中的列表和元组有什么区别?

list 是可变的对象,元组 tuple 是不可变的对象。也就是说列表中的元素可以进行任意修改,而元组中的元素无法修改。

问题2、Python数组和列表有什么区别?

Python中的数组和列表具有相同的存储数据方式。但是,数组只能包含单个数据类型元素,而列表可以包含任何数据类型元素。

问题3、Python中append和extend的区别?

append() 向列表尾部追加一个新元素,列表只占一个索引位,在原有列表上增加

extend() 向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加

问题4、Python中==和is的区别

is用于判断两个变量引用对象是否为同一个,==用于判断引用变量的值是否相等。

问题5、说一下Python深浅拷贝

对于不可变类型(字符串、数值型、布尔值):浅拷贝和深拷贝一样,对象的引用(内存地址)没有发生变化。

对于可变对象(列表、字典、集合):浅拷贝在拷贝时,只会copy一层,在内存中开辟一个空间,存放这个copy的列表。更深的层次并没有copy,即第二层用的都是同一个内存;深拷贝时,会逐层进行拷贝,遇到可变类型,就开辟一块内存复制下来,遇到不可变类型就沿用之前的引用。因为不可变数据修改会从新开辟新的空间,所以,深拷贝数据之间的修改都不会相互影响。

总结如下:

浅拷贝花费时间少,占用内存少,只拷贝顶层数据,拷贝效率高。

对不可变对象拷贝时,浅拷贝和深拷贝的作用是一致的,不开辟新空间,相当于赋值操作。

可变对象浅拷贝时,只拷贝第一层中的引用,如果元素是可变对象,并且被修改,那么拷贝的对象也会发生变化。

可变对象深拷贝时,会逐层进行拷贝,遇到可变类型,就开辟一块内存复制下来。

元组是个异类。元组是否为可变对象取决于元组中的元素。如果元组中每个元素以及其子孙元素都不包含可变对像,那么这个元祖就是不可变对象。如果元组的元素以及子孙元素中包含可变对象,那么元组就是可变对象。


七月【无人驾驶感知融合实战 - 七月在线】将于2月27日开课,课程将从自动驾驶的基础理论开始讲起(当然,平台上还有无人驾驶实战、slam、目标检测、目标跟踪等课程也可以学习),带你走入无人驾驶感知融合的世界。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值