第六周:组合数据类型(Python学习笔记)
组合数据类型
组合数据类型有三种最重要的类型结构:
- 集合类型及操作
- 序列类型及操作
- 字典类型及操作
集合类型及操作
集合类型的定义
- 集合是多个元素的无序组合
- 集合类型与数学中的集合概念一致
- 集合元素之间无序,每个元素唯一,不存在相同元素
- 集合元素不可更改,不能是可变数据类型
- 集合的表示
- 集合用大括号{}表示,元素间用逗号分隔
- 建立集合类型用{}或set()
- 建立空集合类型,必须使用set()
- 重点
- 集合用大括号表示,元素间用逗号分隔
- 集合中每个元素唯一,不存在相同的元素
- 集合元素之间无序
集合操作符
在数学中集合有4种运算方法:并、差、交、补,Python提供了6中操作符来表达集合中的运算,如:S|T、S-T、S&T、S^T、S<=T、S>=T
集合处理方法
S.add(x)、S.discard(x)、S.remove(x)、S.clear()、S.pop()
S.copy()、len(S)、x in S、x not in S、set(x)
集合类型应用场景
包含关系比较
数据去重:集合类型所有元素无重复
小结
- 集合使用{}和set()函数创建
- 集合间操作:交(&)、并(|)、差(-)、补(^)、比较(>=<)
- 集合类型方法:.add()、.discard()、.pop()等
- 集合类型主要应用于:包含关系比较、数据去重复
序列类型及操作
序列类型的定义
- 序列是具有先后关系的一组元素
- 序列是一维元素向量,元素类型可以不同
- 类似数学元素序列:S0,S1,…,Sn-1
- 元素间由序号引导,通过下标访问序列的特定元素
序列是一个基类类型,可以衍生为字符串类型、元组类型、列表类型
序号的定义:
序列处理函数及方法
序列类型通用操作符: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.count(x)
元组类型及操作
- 元组是序列类型的一种扩展
- 元组是一种序列类型,一旦创建就不能被修改
- 使用小括号()或tuple()创建,元素间用逗号,分隔
- 可以使用或不使用小括号
- 元组继承序列类型的全部通用操作
- 元组继承了序列类型的全部通用操作
- 元组因为创建后不能修改,因此没有特殊操作
- 使用或不使用小括号
列表类型及操作
- 列表是序列类型的一种扩展,十分常用
- 列表是一种序列类型,创建后可以随意被修改
- 使用方括号[]或list()创建,元素间用逗号,分隔
- 可以使用或不使用小括号
列表类型操作函数和方法:ls[i]=x ,ls[i:j:k]=lt , del ls[i] , del ls [i:j:k] , ls+=lt , ls *= n
方法:ls.append(x) , ls.clear() , ls.copy() , ls.insert(i,x) , ls.pop(i) , ls.remove(x) , ls.reverse()
序列类型应用场景
- 序列类型应用场景
- 元组用于元素不改变的应用场景,更多用于固定搭配场景
- 列表更加灵活,它是最常用的序列类型
- 最主要作用:表示一组有序数据,进而操作它们
元素遍历:
数据保护:如果不希望数据被程序所改变,转换成元组类型
小结
- 序列是基类类型,扩展类型包括:字符串、元组和列表
- 元组用() 和tuple()创建,列表用[]和list()创建
- 元组操作与序列操作基本相同
- 列表操作在序列操作基础上,增加了更多的灵活性
字典类型及操作
字典类型的定义
- 理解“映射”
- 映射是一种键(索引)和值(数据)的对应
- 字典类型是“映射”的体现
- 键值对:键是数据索引的扩展
- 字典是键值对的集合,键值对之间无序
- 采用大括号{}和dict()创建,键值对用冒号: 表示
在字典变量中,通过键获得值
注意:如果想生成一个空的字典类型,用{};想生成一个空的集合必须用set()
字典处理函数及方法
字典类型操作函数:del d[k] , k in d , d.keys() , d.values()
字典类型操作方法:d.get(k,) , d.pop(k,) , d.popitem() , d.clear() , len(d)
字典类型应用场景
- 映射的表达
- 映射无处不在,键值对无处不在
- 例如:统计数据出现的次数,数据是键,次数是值
- 最主要作用:表达键值对数据,进而操作它们
- 元素遍历
- for k in d :
<语句块>
小结
- 映射关系采用键值对表达
- 字典类型使用{}和dict()创建,键值对之间用: 分隔
- d[key]方式既可以索引,也可以赋值
- 字典类型有一批操作方法和函数,最重要的是get()