1、容器(container、collection) 存储大量数据的一种数据类型2、python中提供了哪些容器? list 列表 set 集合(所储数据不能重合) tuple 元组 dict 字典(介质的对比)
列表:(线性表) python提供的列表这种容器,是一种线性结构的存储空间(数组是连续的代数,python中没有数组,数组是一种连续的内存)
数组:内存中一块连续的内存空间 (数组是连续的,可以重复) 优点:查询速度快,通过索引迅速检索对应的值 缺点;增删改的效率较低
链表:不是连续存储 优点:曾删改的效率相对与数组较高 缺点:查询速度慢
python中的列表容器就是基于双向链表结构设计的(Java中LinkedList)
列表的定义:列表是Python中最基本的数据结构 列表中的每个元素都分配一个位置,一个元素对应一个位置 访问List的元素(element) 通过下表访问,注意:从0开始 ls3[2] = 100 #修改元素的值弱数据类型语言的特点: 1、 ls = [] 2、 ls2 = list() 3、 list3 = list([1,2,3,4,5,6,7]) # list3 =[1,2,34,4,5,6]
如何遍历list: for i in list
list的常见方法:[‘append','clear','copy','count','extend','index','insert','pop','remove','reverse','sort']
1、ls.append(元素) #在尾部追加一个元素 2、ls.insert(索引位置,元素) #在特定位置,添加元素 3、ls.clear() #清除列表 4、ls.count() #统计元素出现的次数 5、ls.index() #查询元素首次出现的引索,如果不存在,则抛出异常 6、ls.reverse() #翻转列表顺序 7、ls.copy() #栈拷贝对象(堆复制对象) 8、ls.remove() #元素移除 9、ls.pop([index]) #默认删除最后一个元素,如果指定位置,则删除对应位置的元素 10、ls.extend(可迭代对象) #合并列表 11、ls.sort() #排序 (小到大) ls.sort(reverse=Ture) #(大到小排序)
常见的线性表:
多维列表:[ [ ], [ ] , [ ], [ ] ]
Set(集合):也是python提供的一种容器 特点:无序、元素不能重复
1、怎末定义set合集 s={}(不能为空集) s={1,2,3.....} >>>s={1,2,3} >>>type(s) <class'set'> >>>s [1,2,3]
set中不能存放重复的数据
s=set() s=set({元素1,元素2,......}) s=set([元素1,元素2,......]) #将list转换为set对象 ls=list({元素1,元素2,......}) #将set转换为list对象
2、通过官方提供的方法来操作: 1、1--ls.clear() #清除列表 2、1--pop() #随机移除 3、1--intersection #交集 s.intersection(ss):s和ss的交集 4、1--union #并集 s.union(ss):s和ss的并集 5、1--add #添加元素 s.add(55):表示添加55这个元素 6、1--difference #差集 7、1--remove() #移除元素(移除的元素不存在 ,抛出异常,进行提示) 8、1--discard() #删除元素(移除的元素不存在 ,没有任何解释,不运行) 9、1--update(s,sss) #合并集合s和sss
元组(tuple): 元组是一种不可变的数据类型。(不可变:元组中间元素不允许被修改和改变)。
元组定义:
t=() #定义元组,但不推荐使用,因为元组不可 变
t=(“春”,“夏”,“秋”,“冬”) #建议定义时初始化值 t= tuple( ( ) ) #直接定义元组
注意:三种容器都可以使用对应的函数完成转换
字典(dict); dictionary,是一种使用key-value键值对的结构存储数据的(python中key不能重复,否则会覆盖数据)
(key的类型只能是字符串,value类型任意)
如何访问字典值: 使用字典中的key获取key对应的值 d["name"] #获取name对应的值,如果该key不存在,则抛出异常 字典常用方法:
1、1--count #统计元素个数 2、1--index #查询元素所在索引
3、|--fromkeys() #将其他可迭代对象转换为字典
d.fromkeys(["1","2","3"])转换为字典形式
4、|--get() #如果key中不存在所查对象,则返回None 5、|--items #迭代出每一个键值对[ ( ),( ) ] 6、|--keys #f返回所有键 7、|--value #返回所有值 8、|--setdefault #新增key和value 9、|--update #合并字典 10、|--popitem #(Pair are returned in LIFO(last-in,first-out)order随机移除 11、|--pop(key) #通过key对应的键值对