文章目录
1.Python中的数据结构类型
#1.1 List列表 线性表
[]定义,增删查改
#1.2.Tuple元组 只读列表 元素不可变 元素内容也不可变
#()定义,查找
t1=(1,2,3,4)
print(t1[0])
#3.Set集合 元素唯一,不可重复的列表
#{}定义,增删查改
#用 in 来判断是否在集合s1里
s1 = {1,2,3,4}
#4.Dict字典 存储 键值对key-value
#{}定义,增删查改
d1={'Lucy':67,'Tom':89}
d1['Lucy']
d1['Lucy']=100
'Lucy' in d1
'xiaoming' in d1
2.Python数据结构类型内部分析
数据结构:链表,数组,二叉树,哈希,图
2.1 List列表底层是链式存储还是数组存储
头部插入
尾部插入
测试时间差:
结论:列表采用数组存储结构
数组
尾部插入:时间复杂度O(1);
头部插入:时间复杂度O(n)
头部插入需要先让元素后移再进行插入操作
链表
头插法
尾插法
2.2 Set集合底层什么数据结构
代码测试1:
创建一个100万个数的集合(0-999999),然后通过for循环判断499999是否在集合里,做查找操作,查找一百次
代码测试2:
同上,只不过测试对象换成列表
测试结果(取近似):
集合查找时间:10us
列表查找时间:1s
结论:Python中Set集合采用哈希结构:时间复杂度O(1)
列表查找(数组查找)与集合查找(哈希查找)对比:
数组查找,挨个询问-------------》O(n)
哈希查找,哈希函数-------------》O(1)
补充:树形结构
2.3 Dict字典底层是什么数据结构
Dict和Set是一样的,都是hash结构只不过是加了一个数值而已
总结
数据结构很重要,一定要多敲代码!!!