Python基础(五):组合数据类型I
3种主流的组合数据类型
一、集合
定义
与数学的集合概念一致:确定性、互异性、无序性
创建集合:使用
{}或者set()注意:创建一个空集合使用
set()而不是{},因为{}用来创建一个空字典。
操作符
- 并
a | b、交a & b、差a - b、补a ^ b a <= b或a < b:判断 a 和 b 的子集关系,返回Ture/Falsea >= b或a > b:判断 a 和 b 的包含关系,返回Ture/False- 增强操作符:
a |= b、a &= b、a -= b、a ^= b
集合操作
集合元素不可更改。
添加元素
s.add(x)将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。
s.update(x)添加元素,参数 x 可以是列表,元组,字典等。
x 可以有多个,用逗号分开。
移除元素
s.remove(x)将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误
KeyError。s.discard(x)移除集合中的元素,且如果元素不存在,不会发生错误。
s.pop()随机删除集合中的一个元素。
集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。
清空集合:
s.clear()得到集合元素个数:
len(s)判断元素是否在集合中
x in s判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。
x not in s
其它
s.copy():拷贝一个集合。返回拷贝的集合。
应用场景:数据去重
二、序列
定义
- 有先后顺序的一组元素,元素可以重复,元素类型可以不同
- 通过下标索引访问元素
通用操作符
x in s、x not in ss+ts*n或n*ss[i]、s[i:j]或s[i:j:k]
通用函数与方法
len(s)min(s)、max(s)s.index(x)或s.index(x,i,j)s.count(x)min(s)/max(s)返回序列 s 中的最小/最大元素,要求 s 中的元素可比较s.index(x,i,j)返回序列 s 从 i 到 j-1 第一次出现 x 的位置
序列是基类(父类)
Python 有 6 个序列的扩展类型,最常见的是 字符串、列表和元组。
字符串
- Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
- 字符串是不可变对象
元组
元组是不可变对象:一旦创建不可修改
创建元组:使用小括号
()或tuple()创建,元素间用逗号分隔可以不使用小括号:
tup3 = "a", "b", "c", "d"元组操作
- 元组继承了序列类型的全部通用操作
- 元组因为创建后不能修改,因此没有特殊操作
列表
列表是可变对象:元素可以随意修改
创建列表:使用方括号
[]或list()创建,元素间用逗号分隔列表操作
列表继承了序列类型的全部通用操作
更新列表
ls[i] = x、ls[i:j:k]=lt替换列表 ls 第 i 元素为 x
用列表 lt 替换 ls 切片后所对应元素子列表
ls.append(x):在列表末尾添加新的对象 x。ls.insert(i,x):将指定对象 x 插入列表的指定位置 i。
删除列表元素
del ls[i]、del ls[i:j:k]删除列表 ls 中第 i 元素
删除列表 ls 中第 i 到 j-1 以 k 为步长的元素
ls.remove(x):移除列表中某个值 x 的第一个匹配项。ls.pop([index=-1])移除列表中的一个元素,并且返回该元素的值。
index—— 可选参数,要移除列表元素的索引值,不能超过列表总长度,默认为index=-1,删除最后一个列表值。
排序:
ls.sort()其它
ls.clear():清空列表,类似于del ls[:]ls.reverse():反转列表ls.copy():复制列表list2 = list1.copy()
序列应用场景
- 元组用于元素不改变的应用场景,更多用于固定搭配场景
- 列表更加灵活,它是最常用的序列类型
三、字典
定义
字典是一种可变容器模型,可存储任意类型对象。
采用大括号
{}和内建函数dict()创建字典使用大括号
{}创建空字典字典的每个键值对用冒号
:分割,每个对之间用逗号,分割d = {key1:value1, key2:value2, key3:value3}键的特性
值可以取任意数据类型,可以重复。
键必须是唯一的
创建时如果同一个键被赋值两次,后一个值会被记住。
键必须不可变
可以用数字,字符串或元组充当,而用列表就不行
字典操作
访问
键就是值的索引,通过键获取值:
<值> = <字典变量>[<键>]键不在字典中时,会触发
KeyError异常。d.get(k,<default>)若键 k 存在,则返回键 k 的值,键不在则返回
<default>值(默认default=None)。
修改
- 修改值:
<字典变量>[<键>] = <新的值> - 添加键值对:
<字典变量>[<新的键>] = <新的值>
- 修改值:
删除
删除键值对
del <字典变量>[<键>]d.pop(k,<default>)若键 k 存在,删除键所对应的值,返回被删除的值,键不在则返回
<default>值。若默认值 default 没有指定 ,则触发
KeyError异常
d.popitem()在 Python3.7 之前,
popitem()方法删除并返回任意插入字典的键值对。在 Python3.7 之后,
popitem()方法删除并返回字典中的最后一对键和值。
删除字典:
del <字典变量>执行 del 操作删除字典后,字典不再存在
清空字典:
<字典变量>.clear()
其它操作
len(d)k in d:判断键 k 是否在字典 d 中,如果在返回 True,否则 Falsed.keys()、d.values()、d.items()返回字典d中所有的键信息、值信息、键值对信息
应用场景
组合数据类型转换
转换函数:
set()tuple()list()
思维导图
