为什么python执行速度慢?
- python为解释型语言,在运行时需要被解释器逐行解释和执行;
- python是动态类型语言,需要在运行时检查每个变量的类型,静态类型语言如C++在编译时进行类型检查;
- 全局解释器锁(GIL)的存在,限制了其多线程能力。
如何优化python执行速度?
- 使用内置函数和库;
- 减少不必要的循环,将计算移到循环外;
- 减少内存占用。
python代码的执行过程是怎样的?
- 解释器:读取python代码,进行类型和语法检查,转化为字节代码.pyc;
- 执行:将字节代码发送至python虚拟机PVM执行;
python的内置数据结构有哪些?
- 元组(tuple):异构数据存储,不可变,以()表示;
- 列表(list):异构数据存储,可变,以[ ]表示;
- 集合(set):唯一的元素的无序集合,以{ }表示;
- 字典(dict):键值对的集合,键是唯一且不可变的对象;
代码示例
a=(1,2,'3') #tuple
b=[1,2,'3'] #list
c={1,2,3} #set
d ={'1':1,'2':2} #dict
元组和列表的区别?
列表是动态数组;元组是静态数组,一旦创建无法改变,存储更高效。
数组和列表如何选择?
元素序列很长或需要数值运算,采用数组;元素序列很短且不需要数值计算,采用列表。
对列表的操作
切片
添加
- insert:在指定位置添加元素(pos,num)
- append:在末尾添加元素
- extend:在末尾一次性追加多个值
删除
- remove:删除指定值的第一个元素
- del:删除指定位置的元素
- pop:删除末尾元素
运算
- +:拼接两个列表
- *:复制列表元素
函数
- index():某个元素第一次出现的索引
- count():统计某个值的次数
- sort():排序
- reverse():反转
列表推导式
更改类型
range、arange、linspace
- range(start,stop,step),返回object,不支持小数步长
- arange(start,stop,step),返回ndarray类型,支持小数步长
- linspace(start,stop,n)
注意:python中range和arange是左闭右开区间!