Python——组合数据类型

1.0什么是组合数据类型?
组合数据类型就是能够表示多个数据的类型.

1.1 组合数据类型的作用:
将多个同类型或不同类型的数据组织起来,通过单一的表示使数据操作更有序,更容易.

组合数据类型可以分为三大类:序列类型,集合类型,映射类型.

1.2 序列类型
序列类型是一个元素向量,元素之间存在先后关系,通过序号访问,元素之间不排他
序列类型之间存在顺序关系,所以序列类型中可以存在数值相同但位置不同的元素.
当需要访问序列中某个特定值时,只需要通过下标标出即可,而且序列类型支持成员关系操作符(in),长度计算函数(len()),分片([])
序列类型中的元素本身也可以是序列类型.
序列类型:字符串(str),元组(tuple),列表(list)
字符串:可以看作单一字符的有序组合,由于字符串类型十分常用,且单一字符串只表达一个含义,也可看为基本数据类型.
元组:元组是包含0个或者多个数据项的不可变序列类型,元组生成后是固定的,其中任何数据项不能替换或删除.
列表:是一个可以修改的序列类型,使用很灵活.

注意:无论是哪种数据类型,只要是序列类型,都可以使用相同的索引体系,即正向递增序号和反向递减序号.

序列类型的通用操作符和函数
x in s :如果x是s的元素,返回True,否则返回Flase
x not in s :如果x不是s的元素,返回True,否则返回Flase
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为步数子序列

建立元组 a: a = ‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’,‘10’
print(a[2:9]) 输出结果 (‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’)
print(a[2:9:6]) 输出结果(‘3’, ‘9’)
print(a[::-5]) 输出结果(‘10’, ‘5’)
print(a[::]) 输出结果 (‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘10’)
len(s) 序列s中元素的个数
min(s) 序列s中最小元素
max(s) 序列s中最大元素
s.index(x[,i[,j]]) 序列s中从i开始到j位置中第一次出现元素x的位置
s.count(x) 序列s中出现x的总次数

1.3集合类型
集合(set):元素类型只能是固定数据类型,例如整数,浮点数,字符串,元组等
列表,字典和集合数据类型都是可变数据类型,不能作为集合的元素出现
集合类型是一个元素集合,元素之间无序,相同元素在集合中唯一存在.
集合是无序组合,没有索引和位置概念,不能分片,集合中的元素可以动态增加或删除。
集合用大括号{} 表示,可以用赋值语句生成一个集合。
a = {1,‘BB’,(2,‘aa’),3,1,3,1}
print(a) 输出结果{(2, ‘aa’), 1, 3, ‘BB’}
集合是无序的,集合的打印效果与定义顺序可以不一致,由于集合元素独一无二,使用集合类型能够过滤掉重复元素。

Python提供了一种同名的具体数据类型——集合(set)
a = set(“apple”)
print(a) 输出结果{‘e’, ‘a’, ‘p’, ‘l’}
set()函数可以用于生成集合,输入的参数可以是任何组合数据类型,返回结果是一个无重复且排序任意的集合。

集合类型的操作符
Python——组合数据类型
Python——组合数据类型

集合类型的操作函数或方法:
S.add(x) 如果数据项x不在集合S中,将x增加到S中。
S.clear() 移除S中的所有数据项。
S.copy() 返回S集合的一个副本。
S.pop() 随机返回集合S中的一个元素,如果S为空,产生KeyError异常。
S.discard(x) 如果x在集合S中,移除该元素,如果x不在集合S中,不报错。
S.remove(x) 如果x在集合S中,移除该元素,不在则产生KeyError异常。
S.isdisjoint(T) 如果集合S与T没有相同元素,返回True
len(S) 返回集合S的元素个数。
x in S 如果x是S的元素,返回True,否则返回Flase
x not in S :如果x不是S的元素,返回True,否则返回Flase

集合拓展:
Python编译器中界定固定数据类型与否主要考察类型是否能够进行哈希运算,能进行哈希运算的类型都可以作为集合元素.
哈希运算可以将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值成为哈希值.
哈希值是对数据的一种有损且紧凑的表示形式.
Python提供了内置的哈希运算函数 hash() ,它可以对大多数数据类型产生一个哈希值。这些哈希值与哈希前的内容无关,也和这些内容的组合无关,
可以说哈希是数据在另一个数据维度的体现

映射类型:字典(map)
映射类型是’键-值’数据项的组合,每一个元素是一个键值对,表示为(Key,value).

在Python中,每一类组合数据类型都对应一个或多个具体的数据类型.