第六章 组合数据类型

本文详细介绍了Python中的组合数据类型,包括集合、序列(如列表和元组)和映射(字典)的基本概念、定义、操作及实例。集合用于元素去重,列表支持元素增加、删除、替换和查找,字典则通过键值对存储数据,允许通过键索引值。文章还探讨了这些类型的操作函数和方法,以及如何在实际问题中应用,如文本词频统计。

第六章 组合数据类型

6.1 组合数据类型的基本概念

能够表示多个数据量的类型成为组合数据类型。Python语言中最常用的组合数据类型有3大类,分别是集合类型、序列类型和映射类型

集合类型是一个具体的数据类型名称,而序列类型和映射类型是一类数据类型的总称。

集合类型是一个元素的集合,元素之间无序,相同元素在集合中唯一存在。

序列类型是一个元素向量,元素之间存在先后关系,通过序号访问,元素之间不排他。序列类型的典型代表是字符串类型和列表类型。

映射类型是“键—值”数据项的组合,每个元素是一个键值对,表示为(key,value)。映射类型的典型代表是字典类型。

6.1.1 集合类型概述

Python语言中的集合类型与数学中的集合概念一致,既包含0个或多个数据项的无序组合。集合是无序组合,用大括号({})表示,它没有索引和位置的概念,集合中元素可以动态增加或删除。

集合元素不可重复出现,元素类型只能是固定数据类型,例如:整数、浮点数、字符串、元组等,列表、字典和集合类型本身都是可变数据类型,不能作为集合的元素出现。

需要注意,由于集合元素是无序的,集合的打印效果与定义顺序可以不一致。由于集合元素独一无二,使用集合类型能够过滤重复元素。

集合类型有4个操作符:交集(&)、并集(|)、差集(-)、补集(^),操作逻辑与数学定义相同。

操作符的运算 描述
S - T 返回一个新集合,包括在集合S中但不在集合T中的元素
S & T 返回一个新集合,包括同时在集合S和T中的元素
S ^ T 返回一个新集合,包括集合S和T中非共同元素
S | T 返回一个新集合,包括结婚S和T中所有元素

集合类型主要用于元素去重,适合于任何组合数据类型。集合类型常用的操作函数或方法:

函数或方法 描述
S.add(x) 如果数据项x不在集合S中,将x增加到s
S.remove(x) 如果x在集合S中,移除该元素,不再产生KeyError异常
S.clear() 移除S中所有数据项
len(S) 返回集合S元素个数
x in S 如果x是S的元素,返回True,否则返回False
x not in S 如果x不是S的元素,返回True,否则返回False
6.1.2 序列类型概述

序列类型是一维元素向量,元素之间存在先后关系,通过序号访问。

由于元素之间存在顺序关系,所以序列中可以存在相同数值但位置不同的元素。Python语言中有很多数据类型都是序列类型,其中比较重要的是:字符串类型、列表类型和元组类型

字符串类型可以看成是单一字符的有序组合,属于序列类型。列表则是一个可以使用多种类型元素的序列类型。序列类型使用相同的索引体系,即正向递增序号和反向递减序号。

序列类型的操作符和函数:

操作符 描述
x in S 如果x是S的元素,返回True,否则返回False
x not in S 如果x不是S的元素,返回True,否则返回False
s + t 连接s和t
s * n 或 n * s 将序列s复制n次
s[i] 索引,返回序列的第i个元素
s[i: j] 切片,返回包含序列s第i到j个元素的子序列(不包含第j个元素)
s[i: j:k] 步骤切片,返回包含序列s第i到j个元素以k为步数的子序列
len(s) 序列s的元素个数(长度)
min(s) 序列s中的最小元素
max(s) 序列s中的最大元素
s.index(x) 序列s中第一次出现元素x的位置
s.count(x) 序列s中出现x的总次数
6.1.3 映射类型概述

映射类型“键—值”数据项的组合,每个元素是一个键值对,即元素是(key,value),元素之间是无序的。键值对(key,value)是一种二元关系,源于属性和值的映射关系。

映射类型是序列类型的一种扩展。在序列类型中,采用从0开始的正向递增序号进行具体元素值的索引。而映射类型则由用户来定义序号,即键,用其去索引具体的值。

键(key)表示一个属性,也可以理解为一个类别或项目,值(value)是属性的内容,键值对刻画了一个属性和它的值。键值对将映射关系结构化,用于存储和表达。

6.2 列表类型
6.2.1 列表的定义

列表是包含0个或多个元素的有序序列,属于序列类型。列表可以进行元素增加、删除、替换和查找等操作。列表没有长度限制,元素类型可以不同,不需要预定义长度。

列表类型用括号({})表示,也可以通过list(x)函数将集合或字符串转换成列表类型。

列表属于序列类型,所以列表类型支持序列类型对应的操作。

6.2.2 列表的索引

索引是列表的基本操作,用于获得列表的一个元素。使用中括号作为索引操作符。

可以使用遍历循环对列表类型的元素进行遍历操作,语法格式如下:

for <循环变量> in <列表变量>:
	<语句块>
6.2.3 列表的切片

切片是列表的基本操作,用于获得列表的一个片段,即获得一个或多个元素。切片后的结果也是列表类型。语法格式如下:

<列表或列表变量>[N:M] 或 <列表或列表变量>[N:M:K]

切片获取列表类型从N到M(不包含M)的元素组成新的列表。其中,N和M为列表类型的索引序号,可以混合使用正向递增序号和反向递减序号,一般要求N小于M,当N大于等于M时,返回空列表。当K存在时,切片获取类表类型从N到M(不包含M)以k为步长所对应元素组成的列表。

6.3 列表类型的操作
6.3.1 列表的操作函数
操作函数 描述
len(ls) 列表ls的元素个数(长度)
min(ls) 列表ls中的最小元素
max(ls) 列表ls中的最大元素
list(x) 将x转变成列表类型
6.3.2 列表的操作方法

列表类型存在一些操作方法,语法格式如下:

<列表变量>.<方法名称>(<方法参数>)
方法 描述
ls.append() 在列表ls最后增加一个元素x
ls.insert(i,x) 在列表ls第i位置增加元素x
ls.clear() 删除ls中所有元素
ls.pop(i) 将列表ls中第i项元素取出并删除该元素
ls.remove(x) 将列表中出现的第一个元素x删除
ls.reverse() 列表ls中元素反转
ls.copy() 生成一个新列表,复制ls中所有元素
del <列表变量>[<索引序号>]
del <列表变量>[<索引起始>:<索引结束>]
对列表元素或片段进行删除
6.4 字典类型
6.4.1 字典的定义

“键值对”是组织数据的一种重要方式,广泛应用在Web系统中。键值对的基本思想是将“值”信息关联一个“键”信息,进而通过键信息查找对应值信息,这个过程叫映射。Python语言中通过字典类型实现映射。

Python语言中的字典使用大括号{}建立,每个元素是一个键值对,语法格式如下:

{
   
   <1>:
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liebe1*1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值