组合数据类型
一.集合类型及操作
1.集合是多个 元素的无序组合
-集合类型与数学中的集合概念一致
-集合元素之间无序,每个元素唯一,不存在相同元素
-集合元素不可更改,不能是可变数据类型
2.集合是多个元素的无序组合
-集合用大括号{}表示,元素间用逗号分隔
-建立集合类型用{} 或 set()
-建立空集类型,必须使用set()
3.集合间的操作
4.集合的操作符
操作符及应用 |
描述 |
S竖线T |
返回一个 新集合,包括集合S和T中的所有元素 |
S-T |
返回一个新集合,包括在集合S但不在T中的元素 |
S&T |
返回一个新集合,包括同时在集合S和T中的元素 |
S^T |
返回一个新集合,包括集合S和T中的非相同的元素 |
S<=T或S<T |
返回True/False,判断S和T的子集关系 |
S>=T或S>T |
返回True/False,判断S和T的包含关系 |
增强操作符
操作符及应用 |
描述 |
S竖线=T |
更新集合S,包括在集合S和T中的所有元素 |
S-=T |
更新集合S,包括在集合S但不在T中的元素 |
S&=T |
更新集合S,包括同时在集合S和T中的元素 |
S^=T |
更新集合S,包括集合S和T中的非相同元素 |
二.集合的处理方法
1.
操作函数或方法 |
描述 |
S.add(x) |
如果x不在集合S中,将x增加到S |
S.discard(x) |
移除S中元素x,如果x不在集合S中,不报错 |
S.remove(x) |
移除S中元素x,如果x不在集合中,产生KeyError异常 |
S.clear() |
移除S中的所有元素 |
S.pop |
随机返回S的一个元素,更新S,若S为空产生KeyError异常 |
S.copy() |
返回集合S的一个副本 |
len(S) |
返回集合S的元素个数 |
x in S |
判断S中元素x,x在集合S中,返回True,否则返回False |
x not in S |
判断S中元素x,x不在集合S中,返回True,否则返回False |
set(x) |
将其他类型变量x转变为集合类型 |
2.集合类型处理场景
三.序列类型及操作
1.序列类型定义
序列是具有先后关系的一组元素
-序列是一维元素向量,元素类型可以不同
-类似数学元素序列:s0,s1,……sn-1
-元素间由序号引导,通过下标访问序列的特定元素
2.序列类型同用操作符
6个操作符
操作符及应用 |
描述 |
x in s |
如果x是序列s的元素,返回True,否则返回False |
x not in s |
如果x是序列s的元素,返回False,否则返回True |
s + t |
连接两个序列s和t |
s* n或·n*s |
将序列s复制n次 |
s[i] |
索引,返回s中的第i个元素,i是序列的序号 |
s[i: j]或s[i :j :k] |
切片,返回序列s中第 i 到 j 以 k 为步长的元素子序列 |
3.序列类型通用函数和方法
5个函数和方法
函数和方法 |
描述 |
len(s) |
返回序列s的长度 |
min(s) |
返回序列s的最小元素,s中的元素需要可比较 |
max(s) |
返回序列s的最大元素,s中元素需要可比较 |
s.index(x)或s.index(x,i,j) |
返回序列s从i开始到j位置中第一次出现元素x的位置 |
s.count(x) |
返回序列s中出现x的总次数 |
四.元祖类型及操作
1.元祖的定义:
元祖是序列类型的一种扩展
-元祖是一种序列类型,一旦创建就不能修改
-使用小括号()或tuple()创建,元素间用逗号,分隔
-可以使用或不使用小括号
2.元祖类型操作
元祖继承序列类型的全部通用操作
-元祖继承了序列类型的全部通用操作
-元祖因为创建后不能修改,因此没有特殊操作
-使用或不使用小括号
五.列表类型及操作
1.列表类型定义
列表·是序列类型的一钟扩展,十分常用
-列表是一种序列类型,创建后可以随意被修改
-使用方括号[]或list()创建,元素间用逗号,分隔
-列表中各元素类型可以不同,无长度限制
2.列表类型操作函数和方法
函数或方法 |
描述 |
ls[i] |
替换列表ls第i元素为x |
ls[i : j: k] = lt |
用列表lt替换ls切片后对应元素子列表 |
del ls[i] |
删除列表ls中第i个元素 |
del ls[i :j: k] |
删除列表ls中第i到j以k为步长的元素 |
ls+=lt |
更新列表ls,将列表lt元素增加到列表ls中 |
ls*=n |
更新列表ls,其元素重复n次 |
3.列表类型操作函数和方法
函数或方法 |
描述 |
ls.append(x) |
在列表ls最后增加一个元素x |
ls.clear() |
删除元素列表ls中所有元素 |
ls.copy() |
生成一个新列表,赋值ls中所有元素 |
ls.insert(i,x) |
在列表ls的第i个位置增加元素x |
ls.pop(i) |
将列表ls第i个位置元素取出并删除该元素 |
ls.remove(x) |
将列表ls中出现的第一个元素x删除 |
ls.reverse() |
将列表ls中的元素反转 |
4.序列类型应用场景
1.
-元祖用于元素不改变的应用场景,更多用于固定搭配场景
-列表更加灵活,它是最常用的序列类型
-最主要作用:表示一组有序数据,进而操作它们
2.遍历
for item in ls:
<语句块>
for item in tp:
<语句块>
3.数据保护