类型转换
int(x):返回一个整数
float(x):返回一个浮点数
complex(x):返回一个复数
bool(x):返回布尔值
数字处理函数
round():四舍六入,5凑偶,意思:小数点后面小于4的值舍掉,大于6的向前进一位,如果小数点后面是5,后面有有效数字,向前进一,如果没有有效数字,离他最近最近的那个数如果是偶数,舍掉,如果是奇数向前进一位
math模块、floor()、ceil() floor():向下取整,ceil():向上取整
//:整除,向下取整
min():取最小值
max():取最大值
pow(x,y) x**y
math.sqrt():平方根
进制函数,返回值是字符串
bin()
oct()
hex()
类型判断
type():返回的是类型,而不是字符串,包含隐式转换
isinstance(obj.class_or_tuple):返回布尔型,判断obj是不是属于class或者tuple
列表
列表内的元素有顺序,可以使用索引
是线性的数据结构
使用[]表示
列表可以在任何位置进行数据的提取
列表是可变类型的
queue:队列
队列是线性的数据结构,但是它只能在首部和尾部进行拿取数取数据,可以是先进先出,也可以是后进先出
链表
类似手拉手的类型,它的元素在内存中是随机排列的,一个元素可以知道下一个元素的地址
stack:
类似叠盘子的模型,它是后进先出
列表的定义以及初始化
list():定义一个空的列表
list():括号里面可一个是一个可迭代对象
列表不用定义大小
lst=list():定义一个空的列表
lst=[]
lst=list(range(5))
列表的索引访问
正索引:从左至右,索引从0开始
负索引:从右至左,索引从-1开始
正负索引都不可以越界,负责会引起indexErrors
列表通过索引进行访问
list[index]
列表的查询
index(value,[start,stop]):
通过列表内的元素值value来进行查找索引值,其时间复杂度为O(n),
count(value)
返回列表中匹配value的次数,时间复杂度是O(n)
随着列表的数据量变大,而效率下降
len():可以返回列表元素的个数
列表元素的修改:
通过索引进行修改,list[index]=value
索引不要越界
列表元素的增加,插入元素
append(object),时间复杂度是O(1)
insert(index,object):在指定索引index插入元素object,时间复杂度是O(n),如果索引超过上界,在尾部追加,超过下届,在首部追加
extend(iteratable):将可迭代的元素追加至列表中,就地修改
+ :实现列表的链接操作,产生新的列表,原来的列表保持不变
*:实现列表的重复操作,将本列表元素重复n次,返回一个新的列表
列表*重复的坑:类似这样的双分支结构要注意
x=[[1,2,3]]*3
是将列表里面的引用计数重复了3次,实际上都指向同一个
x=[0][1]=200将列表所有元素都修改
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
x[0][1]=20
x
[[1, 20, 3], [1, 20, 3], [1, 20, 3]]
列表的删除元素
remove(value) :从左至右查找到第一个匹配的value,移除该元素,时间复杂度是O(n),
pop([index]):不指定index会从尾部进行弹出元素,指定索引,就会在指定的索引出弹出一个元素,弹出的value可以付给一个变量
pop不加index是的时间复杂度是O(1),加index时间复杂度是O(n)
clear():清楚列表所有元素,剩下一个空列表,在清除的时候要考虑gc的影响
列表的其他操作:
reverse():
将列表的元素进行翻转
sort(key=None,reverse=False):对列表的元素进行排序,默认是升序,reverse=True时升序,reverse=False是降序
其中key是一个函数,指定key如何进行排序
in:成员列表
for i in [list]
列表赋值
当将一个列表赋值给另一个列表,赋值的是引用地址,当一个列表发生修改时,另一个列表也会发生修改,类似两个地址指向同一个对象
copy() ->list
shadow copy返回一个新的列表
是浅拷贝,遇到引用类型,只是复制了一个引用
列表的双分支结构,复制的是一个引用
深拷贝:重新定义个引用地址和对象,与原来的没有关系,修改其中一个并不会影响另一个
copy提供了deepcopy
import copy
copy.deepcopy()
随机数
random模块
randint(a,b)返回[a,b]之间的整数
choice(seq)从非空序列随机挑选一个元素
randrange([start,]stop[,step])从制定范围,按照基数递增的集合获取一个随机数
random.shuffle(list)->就地打乱列表元素
sample(population,k)从样本空间中随机选取k个元素,作为一个新的列表