分类
数值型:
1.int :python3的int就是长整型,且没有大小限制,受限于内存区域的大小
2.float :由整数部分和小数部分组成,支持十进制和科学计数法表示,C的双精度型实现
3.complex :有实数和虚数部分组成,实数和虚数部分都是浮点数
4.bool :int的子类,仅有2个实例True、Flase对应1和0 ,可以和整数直接运算
序列对象:
1.字符串 str
2.列表 list
3.tuple
键值对:
集合 set
字典 dict
类型转换:
int(x) 返回一个整数
float(x)返回一个浮点数
complex(x)、complex(x,y) 返回一个复数
bool(x)返回布尔值
数字的处理函数
round(),四舍六入五取偶
floor()向下取整、ceil()向上取整
int()取整数部分
// 整除且向下取整
min()取最小值
max()取最大值
pow(x,y)等于x**y
math.sqrt()
进制函数,返回的是字符串:
bin()
oct()
hex()
math.pi 圆周率
math.e 自如常数
类型判断:
type(obj), 返回类型,而不是字符串
isinstance(obj,class_or_tuple),返回布尔值
列表list
列表list 、链表
queue、stack
一个列表,一个整齐的队伍
列表内的个体称作元素,由若干元素组成列表
元素可以是任意对象(数字、字符串、对象、列表等)
列表内元素有顺序,可以使用索引
线性的数据结构
使用[ ]表示
注意:列表是可变的
列表索引访问
索引,也称下标:list[ ]
正索引:从左至右,从0开始,为列表中每一个元素编号
负索引:从右至左,从-1开始
正负索引不可以超界,超界会引发indexError
列表查询:
一、index(value,[start[stop]])
通过值value,从指定区间查找列表内的元素是否匹配
匹配第一个就立即返回索引
匹配不到,抛出异常ValueError
二、count(value)
返回列表中匹配value的次数
三、len() 时间复杂度为O(1)
返回列表中元素的个数
时间复杂度:index和count都是O(n),会随着列表规模的增大,而效率下降
列表 增加,插入元素
1.append(iteratable) -> None
将可迭代的对象追加进来,返回None
返回None就意味着没有新的列表产生,就地修改
时间复杂度为O(1)
2.insert(index,object) -> None
在指定的索引index处插入元素object
返回None就意味着没有新的列表产生,就地修改
时间复杂度为O(n)
索引超界
超越上界,尾部追加
超越下界,头部追加
3.extend(iteratable) -> None
将可迭代的对象追加进来,返回None
就地修改
4.+ ->list
连接,将两个列表连接起来
产生新的列表,原列表不变
5.*n -> list
重复,将本列表重复n次,返回新的列表
列表删除元素
1.remove(value) -> None
从左至右查找第一个匹配value的值,移除该元素,返回None
就地修改
时间复杂度O(n)
2.pop([index]) -> item
不指定索引index,就从列表尾部弹出一个元素
指定索引index,就从索引处弹出一个元素,索引超界抛出
index error错误
时间复杂度O(1)
3.clear() -> None
清除列表所有元素,剩下一个空列表
时间复杂度O(1)
列表其他操作
1.reverse() -> None
将列表元素反转,返回None
就地修改
2.sort(key=None,reverse=False) -> None
对列表元素进行排序,就地修改,默认升序
reverse=True,为降序
key一个函数,指定key如何排序
lst.sort(key=funtion)
3.in 查一个元素是否在列表中 -> bool
1 in [1,2]
列表复制
1.copy() ->List
shadow copy返回一个新的列表
shadow copy称为影子拷贝,也叫浅拷贝,遇到引用类型,只是复制一个引用而已
copy.deepcopy深拷贝
随机数
random模块
1.ranint(a,b)返回[a,b]之间的整数
2.choice(seq)从非空序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。random.choice([1,3,5,7])
3.randrange([start],stop,[step])从指定范围内,按指定技术递增的集合中获得一个随机数,基数缺省值为1.random.randrange(1,7,2)
4.random.shuffle(list) -> None 就地打乱元素
5.sample(population,k)从样本空间或总体(序列或者集合类型)中随机k个不同的元素,返回一个新的列表