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对应的键值对