本篇文章给大家分享的是有关Python数据结构的相关知识有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
成都创新互联公司是一家专注于成都网站制作、网站设计与策划设计,镇赉网站建设哪家好?成都创新互联公司做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:镇赉等地区。镇赉做网站价格咨询:13518219792
今天一起学习python的数据结构的相关知识。
1. 模块初识
Python的强大之处在于他有非常丰富和强大的标准库和第三方库。
一般标准库在Lib目录,第三方库:在 site-packages中。
1.1 sys模块(python解释器的sys模块,用c语音写的,Lib目录下没有sys.py)
sys模块主要是用于提供对python解释器相关的操作,比如:
用法举例:
1.2 os模块
os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,所以离不了os模块。python编程时,经常和文件、目录打交道,这是就离不了os模块。
用法举例:
大家可以理解下下面代码是什么意思?文末留言一起交流。
2. python运行机制
我们知道python是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写才对啊!
一些解释型语言也可以通过解释器的优化来在对程序做出翻译时对整个程序做出优化,从而在效率上接近编译型语言。
此外,随着Java等基于虚拟机的语言的兴起,我们又不能把语言纯粹地分成解释型和编译型这两种。
用Java来举例,Java首先是通过编译器编译成字节码文件,然后在运行时通过解释器给解释成机器文件。所以我们说Java是一种先编译后解释的语言。
其实Python和Java/C#一样,也是一门基于虚拟机的语言
简述Python的运行过程
当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
判断更新时间,执行py还是pyc。
说pyc文件其实是PyCodeObject的一种持久化保存方式。
3. 数据类型
int(整型)
在32位机器上,整数的位数为32位,取值范围为
-2^31~2^31-1,
在64位系统上,整数的位数为64位,取值范围为
-2^63~2^63-1,
这也是为什么32位系统内存最大为4G的原因。
4G=4*1024M*1024k*1024-1 = 2^31-1
long(长整型)
从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数
python3 已经不区分int和long
float(浮点型)
浮点数用来处理实数,即带有小数的数字。
浮点数是属于有理数中某特定子集的数的数字表示,小数包括有理数和无理数。
所以浮点数一定是小数,小数不一定是浮点数。
浮点计算是指浮点数参与的运算,这种运算通常伴随着因为无法精确表示而进行的近似或舍入。
复数
由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
布尔值
字符串
Python 3最重要的新特性大概是对文本和二进制数据做了更为清晰地区分。文本总是Unicode,由str类型表示,二进制数据由bytes类型表示。Python 3不会以任意隐式的方式混用str和butes,正因为此,python 3不能拼接字符串和字符包,也无法在字节包里搜索字符串,不能讲字符串传入参数为字节包的函数。
str 转为 bytes – encode
bytes 转为 str – decode
python 数据传输,都是以二进制数据传。
判断一个变量的类型
4. 字符串操作
大小写处理
字符串格式判断
格式化输出
字符空格回车处理
字符串处理
其他
5. 列表、元组操作
列表
元组
元组(): 又称只读列表,只有 count index 两个方法。
6. 字典操作
字典一种key - value 的数据类型
语法:
字典的特性:
a). dict是无序的
b). key必须是唯一的,so 天生去重
常用:
遍历字典
fromkeys用法
7. 深copy和浅copy
7.1 数字和字符串
上篇提了:对于数字和字符串一旦创建便不能被修改,假如对于字符串进行替代操作,只会在内存中重新生产一个字符串,而对于原字符串,并没有改变。
7.2 字典、列表等数据结构
先看个例子:
请想一下:如果对alphabet的值做如下更改,其他四个变量的值会不会变化呢?
下面分别看一下其他四个变量的值:
7.3 总结一下
直接“=”赋值,都指向同一个内存地址,alphabet变,alphabet3也变。和简单的数字、字符串不一样
list.copy()和copy模块的copy.copy()一样,都是浅copy,只copy了第一层,下面的层只是copy内存地址,源变量深层被更改,则更改。
完全克隆,不只拷贝内存地址,则要深copy,使用copy模块的copy.deepcopy()
以上就是Python数据结构的相关知识有哪些,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。