一、列表和元组
用来收纳数据对象的数据类型
列表可以删除、添加、替换、重排序列中的元素(可变类型)
元组是不能再更新(不可变)序列
注:元组在保留大多数功能的同时,去掉了一些灵活性以换取更高的处理性能
- 创建列表 ————> 方括号法 [ ],指明类型法 list( )
- 创建元素 ————> 圆括号法 ( ),指明类型法 tuple( )
列表或元组中保存的各个数据称作元素(element),类型没有限制
列表的操作:增长/缩减
1.增长列表
- append操作:在列表末尾加入一个数据对象
- insert操作:列表中间,指定插入部位
- extend操作:将另一个列表接到原列表后面
2.缩减列表
- pop操作:指定元素序号,提取移除
- remove操作:指定并移除数据对象本身的值
- clear操作:将列表清空为空列表
列表是一种可变容器,可以随意增减。
但并不是所有的数据容器都能像列表这样可以继续添加新元素
列表的操作:重新组织
- reverse操作:把列表中的数据元素头尾反转重新排列
- sort操作:把列表中的数据元素按照大小顺序重新排列
- reversed/sorted 操作:得到重新排列的列表,而不影响原来的列表
列表和元组的操作:索引和切片
1.索引
alist[n]或atuple[n]
- 可以用赋值语句给列表中的任何一个位置
- 重新赋值但元组属于不可变类型,索引只能获取对应位置中的数据值,不可重新赋值
2.切片
alist[start :end :step] 或 atuple[start :end :step]
注:切片为左闭右开区间
列表和元组的操作:查找和计算
1.查找
- in操作:判断某个元素是否存在于列表/元组中
- index操作:指定的数据在列表/元组的哪个位置
- count操作:指定的数据在列表/元组中出现过几次
2.计算
- sum函数:将列表中所有的数据元素累加
- min/max函数:返回列表中最小/最大的数据元素
二、字典
“标签收纳盒”
给数据贴上标签,就可以通过具有特定含义的名字或者别的记号来获取数据。
- 通过标签(或者关键字)来索引数据,区别于列表或元组通过连续的整数来索引
标签(key)和数据值(value)
- 字典容器中保存着一系列的key-value对
- 通过键值key来索引元素value
字典是可变类型,可以添加、删除、替换元素
字典中的元素value没有顺序,可以是任意类型,甚至也可以是字典
字典的键值key可以是任意不可变类型(数值/字符串/元组)
1.创建一个字典
花括号法和指明类型法
student ={}
student = dict()
数据项(item)
- 字典中保存的各个标签-数据值(key-value)
- 标签和数据值之间用冒号“:”连接
批量添加数据项
formkeys中包含一个序列(列表或元组)
例:student = dict.fromkeys((“name”,“age”))
如果不加参数,标签的值默认赋值为none
2.更新一个字典
合并字典
- update方法
增长字典
- “关联”操作
- update操作:以key=value的形式批量添加数据项
缩减字典
- del操作:删除指定标签的数据项
- pop操作:删除指定标签的数据项并返回数据值
- popitem操作:删除并返回任意一个数据项,可以用来对字典进行遍历的操作,逐项处理
- clear操作:清空字典
字典大小
- len函数:返回字典中包含的key-value对的数量
3.访问字典的数据项
标签索引
dict[key]
- 获取字典中指定标签的数据值
- 更新指定标签的数据项
student ={"name":"Tom""age":20,"gender":"male"}
student["age"] = 24
获取字典的标签、数据值和数据项
- keys函数:返回字典中的所有标签
- values函数:返回字典中的所有数据值
- items函数:将每个数据项表示为二元元组,返回所有的数据项
4.在字典中查找
- in操作:判断字典中是否存在某个标签(判断key)
- in操作和values函数的组合:判断字典中是否存在某个数据值(判断values)
三、集合
“标签带”
通过改造字典类型,去掉关联数据值,只留下标签的新容器类型
集合是不重复元素的无序组合
1.创建一个集合
创建集合:{ }或者set( )
- 用set()创建空集
- 可用set()从其它序列转换生成集合
集合会自动忽略重复的数据
集合中不能加入可变类型数据
2.更新一个集合
增长集合
- add操作:添加一个数据
- update操作:批量添加数据
缩减集合
- remove/discard操作:删除指定数据
remove在删除到不存在的数据是会报错,而discard不会报错
- pop操作:删除任意数据并返回值
- clear操作:清空集合
集合大小
- len函数:查看集合中包含的元素多少
3.访问集合中的元素
- in操作:判断元素是否属于集合
- pop操作:删除数据元素的同时,返回它的值
注:取遍所有数据元素之后,集合成为一个空集;
可以用copy操作先给集合制作一个“替身“”
- 迭代循环:可以取遍集合中的每一个元素且不挪走任何一个元素
4.集合运算
-
生成新集合运算
- 关系判定
<=,<,=>,>:子集/真子集/超集/真超集
- 交集
isdisjoint():两集合交集是否为空(返回true交集为空,返回false交集有元素)
5.集合作用
- 快速去除重复的数据项
- 判断元素是否在一组数据中,如果这些数据的次序不重要,使用集合可以获得比列表更好的性能