Python基础(五):组合数据类型I
3种主流的组合数据类型
一、集合
定义
与数学的集合概念一致:确定性、互异性、无序性
创建集合:使用
{}
或者set()
注意:创建一个空集合使用
set()
而不是{}
,因为{}
用来创建一个空字典。
操作符
- 并
a | b
、交a & b
、差a - b
、补a ^ b
a <= b
或a < b
:判断 a 和 b 的子集关系,返回Ture/False
a >= 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 s
s+t
s*n
或n*s
s[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()