知识框架图
学习笔记
数据结构分类
数值
int、float、complex、bool都是class
int:长整型,没有上限,取决于内存区域大小
float:支持十进制和科学计数法,仅支持双精度
complex:复数,有实数和虚数部分
bool:int的子类,True、False对应1、0,可以和整数直接运算
序列对象
字符串str
列表list
元组tuple
键值对
集合set
字典dict
类型转换
int(x):取整数部分
float(x):返回浮点数
complex(x)、complex(x、y):返回复数
bool(x):返回bool值
数字处理函数
round():四舍六入五取偶
.5:整数部分为偶数,向下取整;整数部分为奇数,向上取整
math模块,floor():向下取整
math模块,ceil():向上取整
x//y:x/y结果向下取整
min()
max()
pow(x,y):x**y
math.sqrt():开方
进制转换,返回字符串
bin()
oct()
hex()
math.pi π
math.e 自然常数
类型判断
type(obj):返回值为类型,而不是字符串
obj为不同类型相加时,做隐式类型转换
isinstance(obj,class_or_tuple):返回bool值
列表
队列
列表内的个体称为元素,有若干元素组成列表
元素可以是任意对象(数字、字符串、对象、列表),对象为列表时称为嵌套列表
列表内元素有顺序,可以使用索引
列表是线性的数据结构
使用[ ]表示
列表是可变的
各种数据结构的特点和差异
列表list:线性编址、内存上连续的地址空间;可迭代、可索引;可变的;允许在中间插入
链表:散落,手拉手,指针
队列queue:线性编址;不允许在中间插入;先进先出
栈stack:后进先出
列表操作
初始化定义
list():定义新的空列表
list(iteratable):使用可迭代对象初始化列表
列表不能一开始就定义大小
索引访问
索引,下标
正索引,从左至右,从0开始
负索引,从右至左,从-1开始
索引不能超界,否则引发IndexError
list[index]:使用索引访问列表中的元素
列表查询
index(value,[start,[stop]])
在指定区间查找与value匹配的元素
匹配第一个立即返回索引,匹配不到抛出ValueError异常
只能从左向右查找,不能使用负索引
时间复杂度O(n)
count(value)
返回列表中匹配value的次数
时间复杂度O(n)
len(list):列表元素的个数
修改元素
list[index] = value,索引不能超界
增加、插入元素
append(obj)
在列表尾部追加元素,返回None,不产生新的列表,就地修改
时间复杂度O(1)
insert(index,obj)
在指定index处插入元素obj,返回None,不产生新的列表,就地修改
时间复杂度O(n)
index超出上界或下界则在尾部或头部追加
extend(iteratable)
将可迭代对象追加到列表中,返回None,不产生新的列表,就地修改
+
连接操作,将两个列表连接起来,产生新的列表,原列表不改变
本质上是调用_add_()方法
*
重复操作,将本列表元素重复n次,返回新的列表
复杂类型或引用类型:列表中再嵌套列表,使用*重复操作时,实际只是复制了内层元素的内存地址指向,结果是所有元素都指向同一内存地址,在这种情况下,修改任意内层元素,其他元素也会跟着改变
删除元素
remove(value)
从左至右查找第一个匹配value的值,移除该元素,返回None,就地修改
时间复杂度O(n)
pop([index])
不指定index,则从尾部弹出一个元素
指定index,则将index处元素弹出,索引超界IndexError错误
clear()
清空列表中的所有元素,留下空列表
其他操作
reverse()
将列表元素反转,返回None,就地修改
in
判断列表的从属关系或在指定列表中迭代
sort(key=None,reverse=False)
对列表元素进行排序,就地修改,默认升序
reverse为True则降序排列
key为函数,指定kay如何排序
sorted(iterable[, key][, reverse])
生成新的列表,不修改原有列表
列表复制
shadow copy
浅拷贝,影子拷贝,遇到引用类型时只是复制内存地址
deepcopy
深拷贝,遇到引用类型时将内存地址指向位置的内容原样复制
随机数
random
randint(a,b):返回[a,b]之间的整数
choice(seq):从非空序列中随机返回一个元素
randrange([start,] stop [,step]):从指定范围内返回一个随机数
shuffle(list):就地打乱列表元素
sample(m,n):从列表m中随机返回n个不同元素
原创文章,作者:ZBD20,如若转载,请注明出处:http://www.178linux.com/93132