最近python常见面试题精华整理
Posted 一起舞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最近python常见面试题精华整理相关的知识,希望对你有一定的参考价值。
1、list和tuple的一些区别
区别一:语法差异
1、使用方括号[]创建列表,而使用括号()创建元组
区别二:是否可变
2、列表是可变的,而元组是不可变的,这标志着两者之间的关键差异。
我们可以修改列表的值,但是不修改元组的值
列表是可变的,我们不能将列表用作字典中的key。 但可以使用元组作为字典key
区别三:重用与拷贝
元组无法复制。 原因是元组是不可变的
区别四:大小差异
与列表相比,元组的内存更小。 当你拥有大量元素时,元组比列表快
区别五:同构与异构
元组和列表都是容器对象,都可以存放不同类型的数据内容
元组多用于用于存储异构元素,异构元素即不同数据类型的元素,比如(ip,port)。 另一方面,列表用于存储异构元素,这些元素属于相同类型的元素,比如[int1,in2,in3]
2、列表与字典的区别
(1)获取元素的方式不同。列表通过索引值获取,字典通过键获取
(2)数据结构和算法不同。字典是 hash 算法,搜索的速度特别快
(3)占用的内存不同
3、列举常见的内置函数
map,filter(当返回值为正数时才返回函数结果进入下个元素的计算),zip,len,bin,oct,hex,int,float,bool,sum,min,max,str,list,tuple,dict,range,next,hash,help,id…
enumerate,reduce,eval,format
4、至少列举8个常用模块都有那些
os,sys,time,random,re,hashlib,logging,json,pickle…
os模块提供了不少与操作系统相关联的函数.
sys通用工具脚本经常调用命令行参数.
re模块为高级字符串处理提供了正则表达式工具。对于复杂的匹配和处理,正则表达式提供了简洁、优化的解决方案:
random提供了生成随机数的工具。
re的match和search区别?
match:从字符串的开头位置匹配,必须以此为开头
search:从开头开始查,找到符合的就返回结果
python进阶
1、深拷贝和浅拷贝的区别是什么?
深拷贝是将对象本身复制给另一个对象。这意味着如果对对象的副本进行更改时不会影响原对象。
浅拷贝是将对象的引用复制给另一个对象。因此,如果我们在副本中进行更改,则会影响原对象。
2、Python垃圾回收机制?(知道即可)
python采用的是引用计数机制为主,标记-清除和分代收集(隔代回收、分代回收)两种机制为辅的策略
1
2
|
1 、回收计数引用为 0 的对象,释放其占用空间 2 、循环垃圾回收器。释放循环引用对象 |
计数机制
Python的GC模块主要运用了引用计数来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”解决容器对象可能产生的循环引用的问题。通过分代回收以空间换取时间进一步提高垃圾回收的效率。
标记-清除:
标记-清除的出现打破了循环引用,也就是它只关注那些可能会产生循环引用的对象
缺点:该机制所带来的额外操作和需要回收的内存块成正比。
隔代回收
原理:将系统中的所有内存块根据其存活时间划分为不同的集合,每一个集合就成为一个“代”,垃圾收集的频率随着“代”的存活时间的增大而减小。也就是说,活得越长的对象,就越不可能是垃圾,就应该减少对它的垃圾收集频率。那么如何来衡量这个存活时间:通常是利用几次垃圾收集动作来衡量,如果一个对象经过的垃圾收集次数越多,可以得出:该对象存活时间就越长。
以上是关于最近python常见面试题精华整理的主要内容,如果未能解决你的问题,请参考以下文章